Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 1 | # Set up rules to build dpi-specific apk, with whatever else from the base apk. |
| 2 | # Input variable: my_dpi, and all other variables set up in package_internal.mk. |
| 3 | # |
| 4 | |
| 5 | dpi_apk_name := $(LOCAL_MODULE)_$(my_dpi) |
| 6 | dpi_intermediate := $(call intermediates-dir-for,APPS,$(dpi_apk_name)) |
| 7 | built_dpi_apk := $(dpi_intermediate)/package.apk |
Shinichiro Hamaji | 641e61c | 2016-05-13 16:03:24 +0900 | [diff] [blame] | 8 | additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 9 | |
| 10 | # Set up all the target-specific variables. |
| 11 | $(built_dpi_apk): PRIVATE_MODULE := $(dpi_apk_name) |
Colin Cross | d5cce4c | 2017-10-27 16:10:18 -0700 | [diff] [blame] | 12 | $(built_dpi_apk): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --pseudo-localize $($(LOCAL_PACKAGE_NAME)_aapt_flags_$(my_dpi)) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 13 | # Clear PRIVATE_PRODUCT_AAPT_CONFIG to include everything by default. |
| 14 | $(built_dpi_apk): PRIVATE_PRODUCT_AAPT_CONFIG := |
| 15 | $(built_dpi_apk): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(my_dpi) |
| 16 | $(built_dpi_apk): PRIVATE_ANDROID_MANIFEST := $(full_android_manifest) |
| 17 | $(built_dpi_apk): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR) |
| 18 | $(built_dpi_apk): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR) |
| 19 | $(built_dpi_apk): PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports) |
Dan Willemsen | f439c33 | 2017-10-02 14:22:02 -0700 | [diff] [blame] | 20 | $(built_dpi_apk): PRIVATE_RESOURCE_LIST := $(all_res_assets) |
Jiyong Park | 5ebca30 | 2018-01-31 00:14:55 +0900 | [diff] [blame] | 21 | ifneq (,$(filter-out current system_current test_current core_current, $(LOCAL_SDK_VERSION))) |
Sundong Ahn | 5a44d1f | 2017-10-16 19:20:34 +0900 | [diff] [blame] | 22 | $(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION)) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 23 | else |
| 24 | $(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK) |
| 25 | endif |
| 26 | $(built_dpi_apk): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME) |
| 27 | $(built_dpi_apk): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_INSTRUMENTATION_FOR) |
| 28 | $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_abis) |
| 29 | $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 30 | $(built_dpi_apk): PRIVATE_PRIVATE_KEY := $(private_key) |
| 31 | $(built_dpi_apk): PRIVATE_CERTIFICATE := $(certificate) |
Shinichiro Hamaji | 641e61c | 2016-05-13 16:03:24 +0900 | [diff] [blame] | 32 | $(built_dpi_apk): $(additional_certificates) |
| 33 | $(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(additional_certificates) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 34 | |
Colin Cross | 79e2f73 | 2016-12-21 14:29:13 -0800 | [diff] [blame] | 35 | $(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE := |
Ying Wang | 33360dd | 2015-01-14 14:23:56 -0800 | [diff] [blame] | 36 | ifneq ($(full_classes_jar),) |
Ying Wang | 8586573 | 2016-03-28 18:39:42 -0700 | [diff] [blame] | 37 | $(built_dpi_apk): PRIVATE_DEX_FILE := $(built_dex) |
Colin Cross | 79e2f73 | 2016-12-21 14:29:13 -0800 | [diff] [blame] | 38 | # Use the jarjar processed arhive as the initial package file. |
Colin Cross | 6fabefa | 2017-03-29 12:58:15 -0700 | [diff] [blame] | 39 | $(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE := $(full_classes_pre_proguard_jar) |
Ying Wang | 33360dd | 2015-01-14 14:23:56 -0800 | [diff] [blame] | 40 | $(built_dpi_apk): $(built_dex) |
| 41 | else |
| 42 | $(built_dpi_apk): PRIVATE_DEX_FILE := |
Ying Wang | 33360dd | 2015-01-14 14:23:56 -0800 | [diff] [blame] | 43 | endif # full_classes_jar |
| 44 | |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 45 | # Set up dependenncies and the build recipe. |
| 46 | $(built_dpi_apk) : $(R_file_stamp) |
| 47 | $(built_dpi_apk) : $(all_library_res_package_export_deps) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 48 | $(built_dpi_apk) : $(private_key) $(certificate) $(SIGNAPK_JAR) |
Alex Klyubin | 5b826ac | 2015-12-04 10:07:41 -0800 | [diff] [blame] | 49 | $(built_dpi_apk) : $(AAPT) |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 50 | $(built_dpi_apk) : $(MERGE_ZIPS) $(SOONG_ZIP) $(ZIP2ZIP) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 51 | $(built_dpi_apk) : $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) |
| 52 | @echo "target Package: $(PRIVATE_MODULE) ($@)" |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 53 | rm -rf $@.parts |
| 54 | mkdir -p $@.parts |
| 55 | $(call create-assets-package,$@.parts/apk.zip) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 56 | ifneq ($(jni_shared_libraries),) |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 57 | $(call create-jni-shared-libs-package,$@.parts/jni.zip) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 58 | endif |
Ying Wang | 8b27d18 | 2015-03-27 11:07:17 -0700 | [diff] [blame] | 59 | ifeq ($(full_classes_jar),) |
| 60 | # We don't build jar, need to add the Java resources here. |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 61 | $(if $(PRIVATE_EXTRA_JAR_ARGS),$(call create-java-resources-jar,$@.parts/res.zip)) |
Ying Wang | 8b27d18 | 2015-03-27 11:07:17 -0700 | [diff] [blame] | 62 | else |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 63 | $(call create-dex-jar,$@.parts/dex.zip,$(PRIVATE_DEX_FILE)) |
| 64 | $(call extract-resources-jar,$@.parts/res.zip,$(PRIVATE_SOURCE_ARCHIVE)) |
Colin Cross | 79e2f73 | 2016-12-21 14:29:13 -0800 | [diff] [blame] | 65 | endif |
Colin Cross | c9e4976 | 2018-09-14 13:39:07 -0700 | [diff] [blame] | 66 | $(MERGE_ZIPS) $@ $@.parts/*.zip |
| 67 | rm -rf $@.parts |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 68 | $(sign-package) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 69 | |
| 70 | # Set up global variables to register this apk to the higher-level dependency graph. |
| 71 | ALL_MODULES += $(dpi_apk_name) |
| 72 | ALL_MODULES.$(dpi_apk_name).CLASS := APPS |
| 73 | ALL_MODULES.$(dpi_apk_name).BUILT := $(built_dpi_apk) |
| 74 | PACKAGES := $(PACKAGES) $(dpi_apk_name) |
| 75 | PACKAGES.$(dpi_apk_name).PRIVATE_KEY := $(private_key) |
| 76 | PACKAGES.$(dpi_apk_name).CERTIFICATE := $(certificate) |
| 77 | |
| 78 | # Phony targets used by "apps_only". |
| 79 | .PHONY: $(dpi_apk_name) |
| 80 | $(dpi_apk_name) : $(built_dpi_apk) |