1# Copyright (C) 2017 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15# Specify the following variables before including: 16# 17# LOCAL_PACKAGE_NAME 18# the name of the package 19# 20# LOCAL_SIGNATURE_API_FILES 21# the list of api files needed 22 23# don't include this package in any target 24LOCAL_MODULE_TAGS := tests 25 26# Tag this module as a cts test artifact 27LOCAL_COMPATIBILITY_SUITE := cts vts general-tests 28 29LOCAL_SDK_VERSION := current 30 31LOCAL_STATIC_JAVA_LIBRARIES += cts-api-signature-test 32 33LOCAL_JNI_SHARED_LIBRARIES += libclassdescriptors 34LOCAL_MULTILIB := both 35 36LOCAL_ADDITIONAL_DEPENDENCIES += \ 37 $(addprefix $(COMPATIBILITY_TESTCASES_OUT_cts)/,$(LOCAL_SIGNATURE_API_FILES)) 38 39# Add dependencies needed to build/run the test with atest. 40# 41# This is a temporary workaround as described in b/123393637. It adds the dependencies that 42# atest requires for each of the modules specified in the LOCAL_SIGNATURE_API_FILES. The 43# mapping from module name to the dependency is slightly complicated due to inconsistencies 44# in the mapping for the different file types, i.e. .api, .csv and .zip. Those 45# inconsistencies will be resolved by build improvement work mentioned in b/123393637. 46# 47# Converts: 48# current.api -> $(TARGET_OUT_TESTCASES)/cts-current-api/current.api 49# hiddenapi_flags.csv -> $(TARGET_OUT_TESTCASES)/cts-hiddenapi_flags-csv/hiddenapi_flags.csv 50# system-all.api.zip -> $(TARGET_OUT_TESTCASES)/cts-system-all.api/system-all.api.zip 51 52# Construct module name directory from file name, matches behavior in the 53# build_xml_api_file function in ../api/Android.mk plus some extra rules for handling slight 54# inconsistencies with that behavior for the ..all.zip files used by some signature tests. 55# Replace . with - 56# Prefix every entry with cts- 57# Replace -all-api-zip with -all.api to handle ...all.zip files 58# 59cts_signature_module_deps := $(LOCAL_SIGNATURE_API_FILES) 60cts_signature_module_deps := $(subst .,-,$(cts_signature_module_deps)) 61cts_signature_module_deps := $(addprefix cts-,$(cts_signature_module_deps)) 62cts_signature_module_deps := $(subst -all-api-zip,-all.api,$(cts_signature_module_deps)) 63 64LOCAL_REQUIRED_MODULES := $(cts_signature_module_deps) 65 66LOCAL_DEX_PREOPT := false 67LOCAL_PROGUARD_ENABLED := disabled 68 69LOCAL_USE_EMBEDDED_NATIVE_LIBS := false 70 71ifneq (,$(wildcard $(LOCAL_PATH)/src)) 72 LOCAL_SRC_FILES := $(call all-java-files-under, src) 73endif 74 75include $(BUILD_CTS_PACKAGE) 76 77LOCAL_SIGNATURE_API_FILES := 78cts_signature_module_deps := 79