From 0138951eaffaeaf32f8376959074aabf4ecfaff1 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Wed, 7 Nov 2012 14:07:34 -0800 Subject: [PATCH] Collapse multiple --extra-packages into one. Change-Id: Icbdd56fa104c03e0a6cc58e441e60286a7f25bb2 --- core/base_rules.mk | 23 +++++++++++++++++++---- 1 file 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)