• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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