diff options
-rw-r--r-- | core/base_rules.mk | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/core/base_rules.mk b/core/base_rules.mk index 186c4db13b..07ef024675 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -435,10 +435,10 @@ endif cleantarget := clean-$(LOCAL_MODULE) $(cleantarget) : PRIVATE_MODULE := $(LOCAL_MODULE) $(cleantarget) : PRIVATE_CLEAN_FILES := \ - $(PRIVATE_CLEAN_FILES) \ - $(LOCAL_BUILT_MODULE) \ - $(LOCAL_INSTALLED_MODULE) \ - $(intermediates) + $(PRIVATE_CLEAN_FILES) \ + $(LOCAL_BUILT_MODULE) \ + $(LOCAL_INSTALLED_MODULE) \ + $(intermediates) $(cleantarget):: @echo "Clean: $(PRIVATE_MODULE)" $(hide) rm -rf $(PRIVATE_CLEAN_FILES) @@ -447,6 +447,21 @@ $(cleantarget):: ## Common definitions for module. ########################################################### +# aapt doesn't accept multiple --extra-packages flags. +# We have to collapse them into a single --extra-packages flag here. +LOCAL_AAPT_FLAGS := $(strip $(LOCAL_AAPT_FLAGS)) +ifdef LOCAL_AAPT_FLAGS +ifeq ($(filter 0 1,$(words $(filter --extra-packages,$(LOCAL_AAPT_FLAGS)))),) +aapt_flags := $(subst --extra-packages$(space),--extra-packages@,$(LOCAL_AAPT_FLAGS)) +aapt_flags_extra_packages := $(patsubst --extra-packages@%,%,$(filter --extra-packages@%,$(aapt_flags))) +aapt_flags_extra_packages := $(sort $(subst :,$(space),$(aapt_flags_extra_packages))) +LOCAL_AAPT_FLAGS := $(filter-out --extra-packages@%,$(aapt_flags)) \ + --extra-packages $(subst $(space),:,$(aapt_flags_extra_packages)) +aapt_flags_extra_packages := +aapt_flags := +endif +endif + # Propagate local configuration options to this target. $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_PATH:=$(LOCAL_PATH) $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_AAPT_FLAGS:= $(LOCAL_AAPT_FLAGS) |