From ce7ea68394b9598644d415695473fb289f7865ec Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Tue, 1 Mar 2016 22:05:25 -0800 Subject: [PATCH] Clean generated source dir if .proto/.rs is gonee. Similar to how we clean the generated source dir if .aidl becomes obsolete. Bug: 26688474 Change-Id: I66c5b6d6513259b5f4f4bac84f384f4bf953d82a (cherry-pick from commit d5ffec938344defd437d8e315d6a3376b1100a5a) --- core/java_common.mk | 5 +++++ core/post_clean.mk | 49 ++++++++++++++++++++++++++----------------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/core/java_common.mk b/core/java_common.mk index d9ce9df2d..3f0ac6463 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -46,6 +46,8 @@ $(proto_java_sources_file_stamp) : $(proto_sources_fullpath) $(PROTOC) $(call transform-proto-to-java) #TODO: protoc should output the dependencies introduced by imports. + +ALL_MODULES.$(my_register_name).PROTO_FILES := $(proto_sources_fullpath) endif # proto_sources ######################################### @@ -264,6 +266,9 @@ $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_ ifdef aidl_sources ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources) endif +ifdef renderscript_sources +ALL_MODULES.$(my_register_name).RS_FILES := $(renderscript_sources_fullpath) +endif endif # !LOCAL_IS_HOST_MODULE $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_ALL_JAVA_LIBRARIES := $(full_java_libs) diff --git a/core/post_clean.mk b/core/post_clean.mk index 7fafe4a5e..f08abff1d 100644 --- a/core/post_clean.mk +++ b/core/post_clean.mk @@ -54,27 +54,30 @@ current_package_overlay_config := current_all_packages_config := ####################################################### -# Check if we need to delete obsolete aidl-generated java files. -# When an aidl file gets deleted (or renamed), the generated java file is obsolete. -previous_aidl_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/previous_aidl_config.mk -current_aidl_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/current_aidl_config.mk +# Check if we need to delete obsolete generated java files. +# When an aidl/proto/etc file gets deleted (or renamed), the generated java file is obsolete. +previous_gen_java_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/previous_gen_java_config.mk +current_gen_java_config := $(TARGET_OUT_COMMON_INTERMEDIATES)/current_gen_java_config.mk -$(shell rm -rf $(current_aidl_config) \ - && mkdir -p $(dir $(current_aidl_config))\ - && touch $(current_aidl_config)) --include $(previous_aidl_config) +$(shell rm -rf $(current_gen_java_config) \ + && mkdir -p $(dir $(current_gen_java_config))\ + && touch $(current_gen_java_config)) +-include $(previous_gen_java_config) intermediates_to_clean := -modules_with_aidl_files := +modules_with_gen_java_files := $(foreach p, $(ALL_MODULES), \ - $(if $(ALL_MODULES.$(p).AIDL_FILES),\ - $(eval modules_with_aidl_files += $(p))\ - $(shell echo 'AIDL_FILES.$(p) := $(ALL_MODULES.$(p).AIDL_FILES)' >> $(current_aidl_config)))\ - $(if $(filter-out $(ALL_MODULES.$(p).AIDL_FILES),$(AIDL_FILES.$(p))),\ + $(eval gs := $(strip $(ALL_MODULES.$(p).AIDL_FILES)\ + $(ALL_MODULES.$(p).PROTO_FILES)\ + $(ALL_MODULES.$(p).RS_FILES)))\ + $(if $(gs),\ + $(eval modules_with_gen_java_files += $(p))\ + $(shell echo 'GEN_SRC_FILES.$(p) := $(gs)' >> $(current_gen_java_config)))\ + $(if $(filter-out $(gs),$(GEN_SRC_FILES.$(p))),\ $(eval intermediates_to_clean += $(ALL_MODULES.$(p).INTERMEDIATE_SOURCE_DIR)))) intermediates_to_clean := $(strip $(intermediates_to_clean)) ifdef intermediates_to_clean -$(info *** Obsolete aidl-generated files detected, clean intermediate files...) +$(info *** Obsolete generated java files detected, clean intermediate files...) $(info *** rm -rf $(intermediates_to_clean)) $(shell rm -rf $(intermediates_to_clean)) intermediates_to_clean := @@ -82,15 +85,15 @@ endif # For modules not loaded by the current build (e.g. you are running mm/mmm), # we copy the info from the previous bulid. -$(foreach p, $(filter-out $(ALL_MODULES),$(MODULES_WITH_AIDL_FILES)),\ - $(shell echo 'AIDL_FILES.$(p) := $(AIDL_FILES.$(p))' >> $(current_aidl_config))) -MODULES_WITH_AIDL_FILES := $(sort $(MODULES_WITH_AIDL_FILES) $(modules_with_aidl_files)) -$(shell echo 'MODULES_WITH_AIDL_FILES := $(MODULES_WITH_AIDL_FILES)' >> $(current_aidl_config)) +$(foreach p, $(filter-out $(ALL_MODULES),$(MODULES_WITH_GEN_JAVA_FILES)),\ + $(shell echo 'GEN_SRC_FILES.$(p) := $(GEN_SRC_FILES.$(p))' >> $(current_gen_java_config))) +MODULES_WITH_GEN_JAVA_FILES := $(sort $(MODULES_WITH_GEN_JAVA_FILES) $(modules_with_gen_java_files)) +$(shell echo 'MODULES_WITH_GEN_JAVA_FILES := $(MODULES_WITH_GEN_JAVA_FILES)' >> $(current_gen_java_config)) # Now current becomes previous. -$(shell cmp $(current_aidl_config) $(previous_aidl_config) > /dev/null 2>&1 || mv -f $(current_aidl_config) $(previous_aidl_config)) +$(shell cmp $(current_gen_java_config) $(previous_gen_java_config) > /dev/null 2>&1 || mv -f $(current_gen_java_config) $(previous_gen_java_config)) -MODULES_WITH_AIDL_FILES := -modules_with_aidl_files := -previous_aidl_config := -current_aidl_config := +MODULES_WITH_GEN_JAVA_FILES := +modules_with_gen_java_files := +previous_gen_java_config := +current_gen_java_config := -- 2.11.0