Home | History | Annotate | Download | only in core
      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
      8 additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8)
      9 
     10 # Set up all the target-specific variables.
     11 $(built_dpi_apk): PRIVATE_MODULE := $(dpi_apk_name)
     12 $(built_dpi_apk): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --pseudo-localize $($(LOCAL_PACKAGE_NAME)_aapt_flags_$(my_dpi))
     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)
     20 $(built_dpi_apk): PRIVATE_RESOURCE_LIST := $(all_res_assets)
     21 ifneq (,$(filter-out current system_current test_current core_current, $(LOCAL_SDK_VERSION)))
     22 $(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION))
     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)
     30 $(built_dpi_apk): PRIVATE_PRIVATE_KEY := $(private_key)
     31 $(built_dpi_apk): PRIVATE_CERTIFICATE := $(certificate)
     32 $(built_dpi_apk): $(additional_certificates)
     33 $(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(additional_certificates)
     34 
     35 $(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE :=
     36 ifneq ($(full_classes_jar),)
     37 $(built_dpi_apk): PRIVATE_DEX_FILE := $(built_dex)
     38 # Use the jarjar processed arhive as the initial package file.
     39 $(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE := $(full_classes_pre_proguard_jar)
     40 $(built_dpi_apk): $(built_dex)
     41 else
     42 $(built_dpi_apk): PRIVATE_DEX_FILE :=
     43 endif # full_classes_jar
     44 
     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)
     48 $(built_dpi_apk) : $(private_key) $(certificate) $(SIGNAPK_JAR)
     49 $(built_dpi_apk) : $(AAPT)
     50 $(built_dpi_apk) : $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
     51 	@echo "target Package: $(PRIVATE_MODULE) ($@)"
     52 	$(if $(PRIVATE_SOURCE_ARCHIVE),\
     53 	  $(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@),\
     54 	  $(create-empty-package))
     55 	$(add-assets-to-package)
     56 ifneq ($(jni_shared_libraries),)
     57 	$(add-jni-shared-libs-to-package)
     58 endif
     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
     63 	$(add-dex-to-package)
     64 endif
     65 	$(sign-package)
     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)
     78