From fb6985e4dcef933856f47ad6012bddb18f0a06d8 Mon Sep 17 00:00:00 2001 From: Martin Arenlind Date: Tue, 15 Sep 2015 15:52:56 +0200 Subject: [PATCH] Make sure R.stamp is always created When an app has a resource directory, but the directory contain no resources, R.stamp is not created. This leads to that such apps are always rebuilt, even when there are no changes. This patch changes so that an empty R.stamp is created even if there are no resources. This leads to that affected apps are not rebuilt unless changed. Change-Id: Ia63e5b1913a4456402700b615ba7f9d56d2da852 --- core/package_internal.mk | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/package_internal.mk b/core/package_internal.mk index 1f98cdc30..a2cbe3192 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -241,7 +241,7 @@ $(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \ $(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file) $(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" - @rm -f $@ + @rm -rf $@ && mkdir -p $(dir $@) $(create-resource-java-files) $(hide) for GENERATED_MANIFEST_FILE in `find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) \ -name Manifest.java 2> /dev/null`; do \ @@ -256,7 +256,10 @@ $(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_ $(ACP) -fp $$GENERATED_R_FILE $(TARGET_COMMON_OUT_ROOT)/R/$$dir \ || exit 31; \ $(ACP) -fp $$GENERATED_R_FILE $@ || exit 32; \ - done; \ + done; + @# Ensure that the target file is always created, i.e. also in case we did not + @# enter the GENERATED_R_FILE-loop above. This avoids unnecessary rebuilding. + $(hide) touch $@ $(proguard_options_file): $(R_file_stamp)