forked from openkylin/platform_build
Merge "AAPT2: Enable product/config filtering and improve source ordering" into nyc-dev
This commit is contained in:
commit
7214d224b8
|
@ -2,7 +2,7 @@
|
|||
# Compile resource with AAPT2
|
||||
# Input variables:
|
||||
# full_android_manifest,
|
||||
# my_res_resources, my_overlay_resources, my_aapt_characteristics,
|
||||
# my_res_resources, my_overlay_resources,
|
||||
# my_compiled_res_base_dir, my_res_package,
|
||||
# R_file_stamp, proguard_options_file
|
||||
# my_generated_res_dirs: Resources generated during the build process and we have to compile them in a single run of aapt2.
|
||||
|
@ -41,15 +41,15 @@ my_generated_resources_flata += $(my_generated_resources_flata)
|
|||
endif
|
||||
|
||||
$(my_res_resources_flat) $(my_overlay_resources_flat) $(my_generated_resources_flata): \
|
||||
PRIVATE_AAPT2_CFLAGS := $(addprefix --product ,$(my_aapt_characteristics)) $(PRODUCT_AAPT2_CFLAGS)
|
||||
PRIVATE_AAPT2_CFLAGS := $(PRODUCT_AAPT2_CFLAGS)
|
||||
|
||||
my_static_library_resources := $(foreach l, $(LOCAL_STATIC_ANDROID_LIBRARIES),\
|
||||
my_static_library_resources := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\
|
||||
$(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk)
|
||||
my_shared_library_resources := $(foreach l, $(LOCAL_SHARED_ANDROID_LIBRARIES),\
|
||||
$(call intermediates-dir-for,JAVA_LIBRARIES,$(l),,COMMON)/package-res.apk)
|
||||
|
||||
$(my_res_package): PRIVATE_RES_FLAT := $(my_res_resources_flat)
|
||||
$(my_res_package): PRIVATE_OVERLAY_FLAT := $(my_overlay_resources_flat) $(my_generated_resources_flata) $(my_static_library_resources)
|
||||
$(my_res_package): PRIVATE_OVERLAY_FLAT := $(my_static_library_resources) $(my_generated_resources_flata) $(my_overlay_resources_flat)
|
||||
$(my_res_package): PRIVATE_SHARED_ANDROID_LIBRARIES := $(my_shared_library_resources)
|
||||
$(my_res_package): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file)
|
||||
$(my_res_package) : $(full_android_manifest) $(my_static_library_resources) $(my_shared_library_resources)
|
||||
|
|
|
@ -1856,7 +1856,6 @@ endef
|
|||
define aapt2-link
|
||||
$(hide) $(AAPT2) link -o $@ \
|
||||
$(PRIVATE_AAPT_FLAGS) \
|
||||
--auto-add-overlay \
|
||||
$(addprefix --manifest ,$(PRIVATE_ANDROID_MANIFEST)) \
|
||||
$(addprefix -I ,$(PRIVATE_AAPT_INCLUDES)) \
|
||||
$(addprefix -I ,$(PRIVATE_SHARED_ANDROID_LIBRARIES)) \
|
||||
|
@ -1864,6 +1863,13 @@ $(hide) $(AAPT2) link -o $@ \
|
|||
$(addprefix --proguard ,$(PRIVATE_PROGUARD_OPTIONS_FILE)) \
|
||||
$(addprefix --min-sdk-version ,$(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
|
||||
$(addprefix --target-sdk-version ,$(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
|
||||
$(if $(filter --product,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --product ,$(PRIVATE_TARGET_AAPT_CHARACTERISTICS))) \
|
||||
$(addprefix -c ,$(PRIVATE_PRODUCT_AAPT_CONFIG)) \
|
||||
$(addprefix --preferred-density ,$(PRIVATE_PRODUCT_AAPT_PREF_CONFIG)) \
|
||||
$(if $(filter --version-code,$(PRIVATE_AAPT_FLAGS)),,--version-code $(PLATFORM_SDK_VERSION)) \
|
||||
$(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,--version-name $(APPS_DEFAULT_VERSION_NAME)) \
|
||||
$(addprefix --rename-manifest-package ,$(PRIVATE_MANIFEST_PACKAGE_NAME)) \
|
||||
$(addprefix --rename-instrumentation-target-package ,$(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \
|
||||
$(addprefix -R , $(PRIVATE_OVERLAY_FLAT)) \
|
||||
$(PRIVATE_RES_FLAT)
|
||||
endef
|
||||
|
@ -2274,7 +2280,7 @@ $(hide) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \
|
|||
$(addprefix -I , $(PRIVATE_AAPT_INCLUDES)) \
|
||||
$(addprefix --min-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
|
||||
$(addprefix --target-sdk-version , $(PRIVATE_DEFAULT_APP_TARGET_SDK)) \
|
||||
$(if $(filter --product,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --product , $(TARGET_AAPT_CHARACTERISTICS))) \
|
||||
$(if $(filter --product,$(PRIVATE_AAPT_FLAGS)),,$(addprefix --product , $(PRIVATE_TARGET_AAPT_CHARACTERISTICS))) \
|
||||
$(if $(filter --version-code,$(PRIVATE_AAPT_FLAGS)),,--version-code $(PLATFORM_SDK_VERSION)) \
|
||||
$(if $(filter --version-name,$(PRIVATE_AAPT_FLAGS)),,--version-name $(APPS_DEFAULT_VERSION_NAME)) \
|
||||
$(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \
|
||||
|
|
|
@ -115,18 +115,31 @@ ifneq ($(all_assets),)
|
|||
need_compile_asset := true
|
||||
endif
|
||||
|
||||
my_res_package :=
|
||||
ifdef LOCAL_USE_AAPT2
|
||||
# In aapt2 the last takes precedence.
|
||||
my_resource_dirs := $(call reverse-list,$(LOCAL_RESOURCE_DIR))
|
||||
my_res_resources :=
|
||||
my_overlay_resources :=
|
||||
# Treat all but the first directory as overlays.
|
||||
my_res_dir :=
|
||||
my_overlay_res_dirs :=
|
||||
|
||||
ifneq ($(LOCAL_STATIC_ANDROID_LIBRARIES),)
|
||||
# If we are using static android libraries, every source file becomes an overlay.
|
||||
# This is to emulate old AAPT behavior which simulated library support.
|
||||
my_res_dir :=
|
||||
my_overlay_res_dirs := $(my_resource_dirs)
|
||||
else
|
||||
# Without static libraries, the first directory is our directory, which can then be
|
||||
# overlaid by the rest. (First directory in my_resource_dirs is last directory in
|
||||
# $(LOCAL_RESOURCE_DIR) due to it being reversed.
|
||||
my_res_dir := $(firstword $(my_resource_dirs))
|
||||
my_overlay_res_dirs := $(wordlist 2,999,$(my_resource_dirs))
|
||||
endif
|
||||
|
||||
my_overlay_resources := $(strip \
|
||||
$(foreach d,$(wordlist 2,999,$(my_resource_dirs)),\
|
||||
$(foreach d,$(my_overlay_res_dirs),\
|
||||
$(addprefix $(d)/, \
|
||||
$(call find-subdir-assets,$(d)))))
|
||||
|
||||
my_res_dir := $(firstword $(my_resource_dirs))
|
||||
my_res_resources := $(strip \
|
||||
$(addprefix $(my_res_dir)/, \
|
||||
$(call find-subdir-assets,$(my_res_dir))))
|
||||
|
@ -313,13 +326,12 @@ endif # LOCAL_DATA_BINDING
|
|||
|
||||
ifeq ($(need_compile_res),true)
|
||||
ifdef LOCAL_USE_AAPT2
|
||||
# my_aapt_characteristics := $(TARGET_AAPT_CHARACTERISTICS)
|
||||
my_aapt_characteristics :=
|
||||
my_compiled_res_base_dir := $(intermediates)/flat-res
|
||||
my_generated_res_dirs := $(rs_generated_res_dir)
|
||||
my_generated_res_dirs_deps := $(RenderScript_file_stamp)
|
||||
# Add AAPT2 specific flags.
|
||||
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --no-static-lib-packages
|
||||
# Add AAPT2 link specific flags.
|
||||
$(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --no-static-lib-packages
|
||||
$(my_res_package): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS)
|
||||
include $(BUILD_SYSTEM)/aapt2.mk
|
||||
else # LOCAL_USE_AAPT2
|
||||
|
||||
|
@ -484,14 +496,14 @@ ifneq ($(TARGET_BUILD_APPS),)
|
|||
LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
|
||||
endif
|
||||
ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true)
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
$(my_res_package) $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
||||
$(my_res_package) $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
else
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := $(PRODUCT_AAPT_CONFIG)
|
||||
$(my_res_package) $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_CONFIG := $(PRODUCT_AAPT_CONFIG)
|
||||
ifdef LOCAL_PACKAGE_SPLITS
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
$(my_res_package) $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
else
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(PRODUCT_AAPT_PREF_CONFIG)
|
||||
$(my_res_package) $(LOCAL_BUILT_MODULE): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(PRODUCT_AAPT_PREF_CONFIG)
|
||||
endif
|
||||
endif
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_DONT_DELETE_JAR_DIRS := $(LOCAL_DONT_DELETE_JAR_DIRS)
|
||||
|
|
|
@ -333,11 +333,13 @@ $(my_res_package): PRIVATE_SOURCE_INTERMEDIATES_DIR :=
|
|||
$(my_res_package): PRIVATE_PROGUARD_OPTIONS_FILE :=
|
||||
$(my_res_package): PRIVATE_DEFAULT_APP_TARGET_SDK :=
|
||||
$(my_res_package): PRIVATE_DEFAULT_APP_TARGET_SDK :=
|
||||
$(my_res_package): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
||||
$(my_res_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
$(my_res_package): PRIVATE_TARGET_AAPT_CHARACTERISTICS :=
|
||||
|
||||
full_android_manifest :=
|
||||
my_res_resources :=
|
||||
my_overlay_resources :=
|
||||
my_aapt_characteristics :=
|
||||
my_compiled_res_base_dir :=
|
||||
R_file_stamp :=
|
||||
proguard_options_file :=
|
||||
|
|
|
@ -120,27 +120,31 @@ endif
|
|||
# AAR needs text symbol file R.txt.
|
||||
ifdef LOCAL_USE_AAPT2
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --static-lib --no-static-lib-packages
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS :=
|
||||
else
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --non-constant-id --output-text-symbols $(LOCAL_INTERMEDIATE_SOURCE_DIR)
|
||||
endif
|
||||
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(LOCAL_INTERMEDIATE_SOURCE_DIR)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_PUBLICS_OUTPUT := $(intermediates.COMMON)/public_resources.xml
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_INCLUDES := $(framework_res_package_export)
|
||||
|
||||
ifneq (,$(filter-out current system_current test_current, $(LOCAL_SDK_VERSION)))
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION)
|
||||
else
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK)
|
||||
endif
|
||||
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR :=
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME :=
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR :=
|
||||
|
||||
ifdef LOCAL_USE_AAPT2
|
||||
# For libraries don't use any product specific flags.
|
||||
my_aapt_characteristics :=
|
||||
# One more level with name res so we can zip up the flat resources that can be linked by apps.
|
||||
my_compiled_res_base_dir := $(intermediates.COMMON)/flat-res/res
|
||||
my_generated_res_dirs := $(rs_generated_res_dir)
|
||||
|
|
Loading…
Reference in New Issue