github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/core/dpi_specific_apk.mk (about)

     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)