forked from openkylin/platform_build
Fix incremental aapt builds
If a resource was moved / removed without any other timestamp updates, ninja would not re-run aapt. To fix this, add a list of resource files into the same command as aapt (echo ... >/dev/null). That way if the list changes, ninja will recognize the command line changing and rerun aapt. Bug: 67315436 Test: mmma cts/tests/autofillservice Test: mv cts/tests/autofillservice/res/layout/welcome_activity.xml \ cts/tests/autofillservice/res/layout/welcome_activity_test.xml Test: mmma cts/tests/autofillservice Change-Id: Ia93ac4ff48910fed74a1f1539ce4e1f5a9db023f
This commit is contained in:
parent
ea655a138f
commit
f439c334da
|
@ -2058,6 +2058,8 @@ $(hide) $(AAPT_ASAN_OPTIONS) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \
|
||||||
$(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \
|
$(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \
|
||||||
$(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \
|
$(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \
|
||||||
--skip-symbols-without-default-localization
|
--skip-symbols-without-default-localization
|
||||||
|
# So that we re-run aapt when the list of input files change
|
||||||
|
$(hide) echo $(PRIVATE_RESOURCE_LIST) >/dev/null
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Search for generated R.java/Manifest.java, copy the found R.java as $1.
|
# Search for generated R.java/Manifest.java, copy the found R.java as $1.
|
||||||
|
@ -2602,6 +2604,8 @@ $(hide) $(AAPT_ASAN_OPTIONS) $(AAPT) package -u $(PRIVATE_AAPT_FLAGS) \
|
||||||
$(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \
|
$(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \
|
||||||
--skip-symbols-without-default-localization \
|
--skip-symbols-without-default-localization \
|
||||||
-F $@
|
-F $@
|
||||||
|
# So that we re-run aapt when the list of input files change
|
||||||
|
$(hide) echo $(PRIVATE_RESOURCE_LIST) >/dev/null
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# We need the extra blank line, so that the command will be on a separate line.
|
# We need the extra blank line, so that the command will be on a separate line.
|
||||||
|
|
|
@ -17,6 +17,7 @@ $(built_dpi_apk): PRIVATE_ANDROID_MANIFEST := $(full_android_manifest)
|
||||||
$(built_dpi_apk): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
|
$(built_dpi_apk): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
|
||||||
$(built_dpi_apk): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
|
$(built_dpi_apk): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
|
||||||
$(built_dpi_apk): PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports)
|
$(built_dpi_apk): PRIVATE_AAPT_INCLUDES := $(all_library_res_package_exports)
|
||||||
|
$(built_dpi_apk): PRIVATE_RESOURCE_LIST := $(all_res_assets)
|
||||||
ifneq (,$(filter-out current system_current test_current, $(LOCAL_SDK_VERSION)))
|
ifneq (,$(filter-out current system_current test_current, $(LOCAL_SDK_VERSION)))
|
||||||
$(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION)
|
$(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION)
|
||||||
else
|
else
|
||||||
|
|
|
@ -415,6 +415,7 @@ else # LOCAL_USE_AAPT2
|
||||||
$(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \
|
$(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \
|
||||||
$(intermediates.COMMON)/public_resources.xml
|
$(intermediates.COMMON)/public_resources.xml
|
||||||
$(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file)
|
$(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file)
|
||||||
|
$(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_res_assets)
|
||||||
$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP)
|
$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP)
|
||||||
@echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)"
|
@echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)"
|
||||||
@rm -rf $@ && mkdir -p $(dir $@)
|
@rm -rf $@ && mkdir -p $(dir $@)
|
||||||
|
@ -435,6 +436,7 @@ $(R_file_stamp): $(resource_export_package)
|
||||||
# can't know anything about PRODUCT. Clear it out just for this target.
|
# can't know anything about PRODUCT. Clear it out just for this target.
|
||||||
$(resource_export_package): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
$(resource_export_package): PRIVATE_PRODUCT_AAPT_CONFIG :=
|
||||||
$(resource_export_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
$(resource_export_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG :=
|
||||||
|
$(resource_export_package): PRIVATE_RESOURCE_LIST := $(all_res_assets)
|
||||||
$(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT)
|
$(resource_export_package): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT)
|
||||||
@echo "target Export Resources: $(PRIVATE_MODULE) ($@)"
|
@echo "target Export Resources: $(PRIVATE_MODULE) ($@)"
|
||||||
$(create-empty-package)
|
$(create-empty-package)
|
||||||
|
@ -569,6 +571,7 @@ ifdef LOCAL_USE_AAPT2
|
||||||
$(LOCAL_BUILT_MODULE): PRIVATE_RES_PACKAGE := $(my_res_package)
|
$(LOCAL_BUILT_MODULE): PRIVATE_RES_PACKAGE := $(my_res_package)
|
||||||
$(LOCAL_BUILT_MODULE) : $(my_res_package) $(AAPT2) | $(ACP)
|
$(LOCAL_BUILT_MODULE) : $(my_res_package) $(AAPT2) | $(ACP)
|
||||||
else
|
else
|
||||||
|
$(LOCAL_BUILT_MODULE): PRIVATE_RESOURCE_LIST := $(all_res_assets)
|
||||||
$(LOCAL_BUILT_MODULE) : $(all_res_assets) $(full_android_manifest) $(AAPT)
|
$(LOCAL_BUILT_MODULE) : $(all_res_assets) $(full_android_manifest) $(AAPT)
|
||||||
endif
|
endif
|
||||||
@echo "target Package: $(PRIVATE_MODULE) ($@)"
|
@echo "target Package: $(PRIVATE_MODULE) ($@)"
|
||||||
|
|
|
@ -170,6 +170,7 @@ endif # renderscript_target_api is set
|
||||||
include $(BUILD_SYSTEM)/aapt2.mk
|
include $(BUILD_SYSTEM)/aapt2.mk
|
||||||
$(my_res_package) : $(framework_res_package_export_deps)
|
$(my_res_package) : $(framework_res_package_export_deps)
|
||||||
else
|
else
|
||||||
|
$(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_resources)
|
||||||
$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export_deps)
|
$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export_deps)
|
||||||
@echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)"
|
@echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)"
|
||||||
$(create-resource-java-files)
|
$(create-resource-java-files)
|
||||||
|
|
Loading…
Reference in New Issue