Auto-clean obsolete aidl-generated Java files.
The build system compares aidl files of every module to the previous build and deletes the intermediate generated source dir if an aidl file has gone. Change-Id: I55fcfe1baaae3496613e12c20bca564d408bba58
This commit is contained in:
@@ -232,7 +232,7 @@ event_log_tags := $(addprefix $(LOCAL_PATH)/,$(logtags_sources))
|
||||
|
||||
# Emit a java source file with constants for the tags, if
|
||||
# LOCAL_MODULE_CLASS is "APPS" or "JAVA_LIBRARIES".
|
||||
ifneq ($(strip $(filter $(LOCAL_MODULE_CLASS),APPS JAVA_LIBRARIES)),)
|
||||
ifneq ($(filter $(LOCAL_MODULE_CLASS),APPS JAVA_LIBRARIES),)
|
||||
|
||||
logtags_java_sources := $(patsubst %.logtags,%.java,$(addprefix $(intermediates.COMMON)/src/, $(logtags_sources)))
|
||||
logtags_sources := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(logtags_sources))
|
||||
@@ -624,6 +624,9 @@ endif
|
||||
ifdef LOCAL_2ND_ARCH_VAR_PREFIX
|
||||
ALL_MODULES.$(my_register_name).FOR_2ND_ARCH := true
|
||||
endif
|
||||
ifdef aidl_sources
|
||||
ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources)
|
||||
endif
|
||||
|
||||
INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name)
|
||||
|
||||
|
@@ -15,6 +15,7 @@
|
||||
# Clean steps that need global knowledge of individual modules.
|
||||
# This file must be included after all Android.mks have been loaded.
|
||||
|
||||
#######################################################
|
||||
# Checks the current build configurations against the previous build,
|
||||
# clean artifacts in TARGET_COMMON_OUT_ROOT if necessary.
|
||||
# If a package's resource overlay has been changed, its R class needs to be
|
||||
@@ -51,3 +52,31 @@ $(shell mv -f $(current_package_overlay_config) $(previous_package_overlay_confi
|
||||
previous_package_overlay_config :=
|
||||
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
|
||||
|
||||
$(shell rm -rf $(current_aidl_config) && mkdir -p $(dir $(current_aidl_config)))
|
||||
-include $(previous_aidl_config)
|
||||
|
||||
intermediates_to_clean :=
|
||||
$(foreach p, $(ALL_MODULES), \
|
||||
$(if $(ALL_MODULES.$(p).AIDL_FILES),\
|
||||
$(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 intermediates_to_clean += $(ALL_MODULES.$(p).INTERMEDIATE_SOURCE_DIR))))
|
||||
ifdef intermediates_to_clean
|
||||
$(info *** Obsolete aidl-generated files detected, clean intermediate files...)
|
||||
$(info *** rm -rf $(intermediates_to_clean))
|
||||
$(shell rm -rf $(intermediates_to_clean))
|
||||
intermediates_to_clean :=
|
||||
endif
|
||||
|
||||
# Now current becomes previous.
|
||||
$(shell mv -f $(current_aidl_config) $(previous_aidl_config))
|
||||
|
||||
previous_aidl_config :=
|
||||
current_aidl_config :=
|
||||
|
Reference in New Issue
Block a user