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) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 50 | $(built_dpi_apk) : $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) |
| 51 | @echo "target Package: $(PRIVATE_MODULE) ($@)" |
Colin Cross | 79e2f73 | 2016-12-21 14:29:13 -0800 | [diff] [blame] | 52 | $(if $(PRIVATE_SOURCE_ARCHIVE),\ |
| 53 | $(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@),\ |
| 54 | $(create-empty-package)) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 55 | $(add-assets-to-package) |
| 56 | ifneq ($(jni_shared_libraries),) |
| 57 | $(add-jni-shared-libs-to-package) |
| 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. |
| 61 | $(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@)) |
| 62 | else |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 63 | $(add-dex-to-package) |
Colin Cross | 79e2f73 | 2016-12-21 14:29:13 -0800 | [diff] [blame] | 64 | endif |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 65 | $(sign-package) |
Ying Wang | 8070b20 | 2014-12-01 17:46:56 -0800 | [diff] [blame] | 66 | |
| 67 | # Set up global variables to register this apk to the higher-level dependency graph. |
| 68 | ALL_MODULES += $(dpi_apk_name) |
| 69 | ALL_MODULES.$(dpi_apk_name).CLASS := APPS |
| 70 | ALL_MODULES.$(dpi_apk_name).BUILT := $(built_dpi_apk) |
| 71 | PACKAGES := $(PACKAGES) $(dpi_apk_name) |
| 72 | PACKAGES.$(dpi_apk_name).PRIVATE_KEY := $(private_key) |
| 73 | PACKAGES.$(dpi_apk_name).CERTIFICATE := $(certificate) |
| 74 | |
| 75 | # Phony targets used by "apps_only". |
| 76 | .PHONY: $(dpi_apk_name) |
| 77 | $(dpi_apk_name) : $(built_dpi_apk) |