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
diff --git a/core/java_common.mk b/core/java_common.mk
index 59f473c..ba475fa 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -42,6 +42,8 @@
$(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
#########################################
@@ -262,6 +264,9 @@
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 7fafe4a..f08abff 100644
--- a/core/post_clean.mk
+++ b/core/post_clean.mk
@@ -54,27 +54,30 @@
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 @@
# 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 :=