diff --git a/core/definitions.mk b/core/definitions.mk index 68d1fa2cb..eb46e40bc 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2058,6 +2058,8 @@ $(hide) $(AAPT_ASAN_OPTIONS) $(AAPT) package $(PRIVATE_AAPT_FLAGS) -m \ $(addprefix --rename-manifest-package , $(PRIVATE_MANIFEST_PACKAGE_NAME)) \ $(addprefix --rename-instrumentation-target-package , $(PRIVATE_MANIFEST_INSTRUMENTATION_FOR)) \ --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 # 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)) \ --skip-symbols-without-default-localization \ -F $@ +# So that we re-run aapt when the list of input files change +$(hide) echo $(PRIVATE_RESOURCE_LIST) >/dev/null endef # We need the extra blank line, so that the command will be on a separate line. diff --git a/core/dpi_specific_apk.mk b/core/dpi_specific_apk.mk index 1b0be0776..be0d33e88 100644 --- a/core/dpi_specific_apk.mk +++ b/core/dpi_specific_apk.mk @@ -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_ASSET_DIR := $(LOCAL_ASSET_DIR) $(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))) $(built_dpi_apk): PRIVATE_DEFAULT_APP_TARGET_SDK := $(LOCAL_SDK_VERSION) else diff --git a/core/package_internal.mk b/core/package_internal.mk index fe648c213..7e2760066 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -415,6 +415,7 @@ else # LOCAL_USE_AAPT2 $(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \ $(intermediates.COMMON)/public_resources.xml $(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) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" @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. $(resource_export_package): PRIVATE_PRODUCT_AAPT_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) @echo "target Export Resources: $(PRIVATE_MODULE) ($@)" $(create-empty-package) @@ -569,6 +571,7 @@ ifdef LOCAL_USE_AAPT2 $(LOCAL_BUILT_MODULE): PRIVATE_RES_PACKAGE := $(my_res_package) $(LOCAL_BUILT_MODULE) : $(my_res_package) $(AAPT2) | $(ACP) else +$(LOCAL_BUILT_MODULE): PRIVATE_RESOURCE_LIST := $(all_res_assets) $(LOCAL_BUILT_MODULE) : $(all_res_assets) $(full_android_manifest) $(AAPT) endif @echo "target Package: $(PRIVATE_MODULE) ($@)" diff --git a/core/static_java_library.mk b/core/static_java_library.mk index ecda730e8..d4f4f9941 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -170,6 +170,7 @@ endif # renderscript_target_api is set include $(BUILD_SYSTEM)/aapt2.mk $(my_res_package) : $(framework_res_package_export_deps) else +$(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_resources) $(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export_deps) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" $(create-resource-java-files)