blob: 8696c4d46a2fbe8b0e081d980df42a84f3f75b87 [file] [log] [blame]
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Specify the following variables before including:
#
# LOCAL_PACKAGE_NAME
# the name of the package
#
# LOCAL_SIGNATURE_API_FILES
# the list of api files needed
# don't include this package in any target
LOCAL_MODULE_TAGS := tests
# Tag this module as a cts test artifact
LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
LOCAL_SDK_VERSION := current
LOCAL_STATIC_JAVA_LIBRARIES += cts-api-signature-test
LOCAL_JNI_SHARED_LIBRARIES += libclassdescriptors
LOCAL_MULTILIB := both
LOCAL_ADDITIONAL_DEPENDENCIES += \
$(addprefix $(COMPATIBILITY_TESTCASES_OUT_cts)/,$(LOCAL_SIGNATURE_API_FILES))
# Add dependencies needed to build/run the test with atest.
#
# This is a temporary workaround as described in b/123393637. It adds the dependencies that
# atest requires for each of the modules specified in the LOCAL_SIGNATURE_API_FILES. The
# mapping from module name to the dependency is slightly complicated due to inconsistencies
# in the mapping for the different file types, i.e. .api, .csv and .zip. Those
# inconsistencies will be resolved by build improvement work mentioned in b/123393637.
#
# Converts:
# current.api -> $(TARGET_OUT_TESTCASES)/cts-current-api/current.api
# hiddenapi_flags.csv -> $(TARGET_OUT_TESTCASES)/cts-hiddenapi_flags-csv/hiddenapi_flags.csv
# system-all.api.zip -> $(TARGET_OUT_TESTCASES)/cts-system-all.api/system-all.api.zip
# Construct module name directory from file name, matches behavior in the
# build_xml_api_file function in ../api/Android.mk plus some extra rules for handling slight
# inconsistencies with that behavior for the ..all.zip files used by some signature tests.
# Replace . with -
# Prefix every entry with cts-
# Replace -all-api-zip with -all.api to handle ...all.zip files
#
cts_signature_module_deps := $(LOCAL_SIGNATURE_API_FILES)
cts_signature_module_deps := $(subst .,-,$(cts_signature_module_deps))
cts_signature_module_deps := $(addprefix cts-,$(cts_signature_module_deps))
cts_signature_module_deps := $(subst -all-api-zip,-all.api,$(cts_signature_module_deps))
LOCAL_REQUIRED_MODULES := $(cts_signature_module_deps)
LOCAL_DEX_PREOPT := false
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_USE_EMBEDDED_NATIVE_LIBS := false
ifneq (,$(wildcard $(LOCAL_PATH)/src))
LOCAL_SRC_FILES := $(call all-java-files-under, src)
endif
include $(BUILD_CTS_PACKAGE)
LOCAL_SIGNATURE_API_FILES :=
cts_signature_module_deps :=