OSDN Git Service

original
[gb-231r1-is01/GB_2.3_IS01.git] / cts / tests / SignatureTest / Android.mk
diff --git a/cts/tests/SignatureTest/Android.mk b/cts/tests/SignatureTest/Android.mk
new file mode 100644 (file)
index 0000000..18c7cea
--- /dev/null
@@ -0,0 +1,107 @@
+# Copyright (C) 2008 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.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+# don't include this package in any target
+LOCAL_MODULE_TAGS := optional
+# and when built explicitly put it in the data partition
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
+
+LOCAL_SRC_FILES := $(call all-subdir-java-files)
+
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+LOCAL_PACKAGE_NAME := SignatureTest
+
+LOCAL_SDK_VERSION := current
+
+# To be passed in on command line
+CTS_API_VERSION ?= current
+
+android_api_description := $(SRC_API_DIR)/$(CTS_API_VERSION).xml
+
+# Can't call local-intermediates-dir directly here because we have to
+# include BUILD_PACAKGE first.  Can't include BUILD_PACKAGE first
+# because we have to override LOCAL_RESOURCE_DIR first.  Hence this
+# hack.
+intermediates.COMMON := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)
+signature_res_dir := $(intermediates.COMMON)/genres
+LOCAL_RESOURCE_DIR := $(signature_res_dir)
+
+# These shell commands allow us to get around the package.mk check for
+# empty/non-existent resouce dirs (which ours would be).  If it finds
+# an empty/non-existent resource dir, R_file_stamp doesn't contain a
+# target and our stuff never gets copied.
+# TODO: fix package.mk so we can avoid this hack
+fake_resource_check := $(signature_res_dir)/raw/fake_resource_check
+
+$(shell \
+ if [ ! -f $(fake_resource_check) ]; then \
+   mkdir -p $(dir $(fake_resource_check)); \
+   touch $(fake_resource_check); \
+ fi \
+ )
+
+include $(BUILD_PACKAGE)
+
+copied_res_stamp := $(intermediates.COMMON)/copyres.stamp
+generated_res_stamp := $(intermediates.COMMON)/genres.stamp
+api_ver_path := $(intermediates.COMMON)
+api_ver_file := $(api_ver_path)/api_ver_is_$(CTS_API_VERSION)
+
+# The api_ver_file keeps track of which api version was last built.
+# By only ever having one of these magic files in existance and making
+# sure the generated resources rule depend on it, we can ensure that
+# the proper version of the api resource gets generated.
+$(api_ver_file):
+       @rm -f $(api_ver_path)/api_ver_is_*
+       $(hide) touch $@
+
+static_res_deps := $(call find-subdir-assets,$(LOCAL_PATH)/res)
+$(copied_res_stamp): PRIVATE_PATH := $(LOCAL_PATH)
+$(copied_res_stamp): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(copied_res_stamp): PRIVATE_RES_DIR := $(signature_res_dir)
+$(copied_res_stamp): FAKE_RESOURCE_DIR := $(dir $(fake_resource_check))
+$(copied_res_stamp): FAKE_RESOURCE_CHECK := $(fake_resource_check)
+$(copied_res_stamp): $(foreach res,$(static_res_deps),$(LOCAL_PATH)/res/${res}) | $(ACP)
+       @echo "Copy resources: $(PRIVATE_MODULE)"
+       @rm -f $@
+       @rm -rf $(PRIVATE_RES_DIR)
+       @mkdir -p $(PRIVATE_RES_DIR)
+       @if [ ! -f $(FAKE_RESOURCE_CHECK) ]; \
+         then mkdir -p $(FAKE_RESOURCE_DIR); \
+         touch $(FAKE_RESOURCE_CHECK); \
+       fi
+       $(hide) $(ACP) -rd $(PRIVATE_PATH)/res/* $(PRIVATE_RES_DIR)/
+       $(hide) touch $@
+
+# Split up config/api/1.xml by "package" and save the files as the
+# resource files of SignatureTest.
+$(generated_res_stamp): PRIVATE_PATH := $(LOCAL_PATH)
+$(generated_res_stamp): PRIVATE_MODULE := $(LOCAL_MODULE)
+$(generated_res_stamp): PRIVATE_RES_DIR := $(signature_res_dir)
+$(generated_res_stamp): $(api_ver_file)
+$(generated_res_stamp): $(copied_res_stamp) $(android_api_description)
+       @echo "Copy generated resources: $(PRIVATE_MODULE)"
+       @rm -f $@
+       $(hide) python cts/tools/utils/android_api_description_splitter.py \
+               $(android_api_description) $(PRIVATE_RES_DIR) package
+       $(hide) touch $@
+
+$(R_file_stamp): $(generated_res_stamp) $(copied_res_stamp)
+
+# Use the folloing include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))