• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2009 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# First we build an apk without the core-tests resource
16cts_ORIGINAL_PACKAGE_NAME := $(LOCAL_PACKAGE_NAME)
17
18LOCAL_PACKAGE_NAME := $(LOCAL_PACKAGE_NAME).no-core-tests-res
19# Make sure this apk won't get installed
20LOCAL_UNINSTALLABLE_MODULE := true
21
22LOCAL_JAVA_LIBRARIES := android.test.runner bouncycastle
23LOCAL_PROGUARD_ENABLED := disabled
24LOCAL_DEX_PREOPT := false
25
26include $(BUILD_PACKAGE)
27# Vars set by $(BUILD_PACKAGE) and needed by the below module definition.
28cts_no-core-tests-res_BUILT_MODULE := $(LOCAL_BUILT_MODULE)
29cts_no-core-tests-res_private_key := $(private_key)
30cts_no-core-tests-res_certificate := $(certificate)
31
32##################################
33# Now the rules to build the apk with core-tests resource
34include $(CLEAR_VARS)
35
36LOCAL_MODULE := $(cts_ORIGINAL_PACKAGE_NAME)
37LOCAL_MODULE_CLASS := APPS
38# don't include these packages in any target
39LOCAL_MODULE_TAGS := optional
40# and when built explicitly put them in the data partition
41LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
42LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
43LOCAL_BUILT_MODULE_STEM := package.apk
44
45include $(BUILD_SYSTEM)/base_rules.mk
46
47CORETESTS_INTERMEDIATES := $(call intermediates-dir-for,JAVA_LIBRARIES,core-tests,,COMMON)
48
49$(LOCAL_BUILT_MODULE): PRIVATE_INTERMEDIATES_COMMON := $(intermediates.COMMON)
50$(LOCAL_BUILT_MODULE): PRIVATE_CORETESTS_INTERMEDIATES_COMMON := $(CORETESTS_INTERMEDIATES)
51$(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(cts_no-core-tests-res_private_key)
52$(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(cts_no-core-tests-res_certificate)
53$(LOCAL_BUILT_MODULE): $(cts_no-core-tests-res_BUILT_MODULE) $(CORETESTS_INTERMEDIATES)/javalib.jar
54	@echo "Add resources to package ($@)"
55	$(hide) mkdir -p $(dir $@) $(PRIVATE_INTERMEDIATES_COMMON)
56	$(hide) rm -rf $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses
57	# javalib.jar should only contain .dex files, but the harmony tests also include
58	# some .class files, so get rid of them
59	$(hide) unzip -qo $(PRIVATE_CORETESTS_INTERMEDIATES_COMMON)/javalib.jar \
60		-d $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses
61	$(hide) find $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses -type f -name "*.class" -delete
62	$(hide) rm -f $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses/classes.dex
63	$(hide) cp $< $@
64	$(hide) jar uf $@ -C $(PRIVATE_INTERMEDIATES_COMMON)/ctsclasses .
65	$(sign-package)
66	$(align-package)
67
68# some global vars set in $(BUILD_PACKAGE), not sure if we really need here
69PACKAGES.$(cts_ORIGINAL_PACKAGE_NAME).PRIVATE_KEY := $(cts_no-core-tests-res_private_key)
70PACKAGES.$(cts_ORIGINAL_PACKAGE_NAME).CERTIFICATE := $(cts_no-core-tests-res_certificate)
71PACKAGES := $(PACKAGES) $(cts_ORIGINAL_PACKAGE_NAME)
72