OSDN Git Service

Collapse multiple --extra-packages into one.
authorYing Wang <wangying@google.com>
Wed, 7 Nov 2012 22:07:34 +0000 (14:07 -0800)
committerYing Wang <wangying@google.com>
Wed, 7 Nov 2012 22:07:34 +0000 (14:07 -0800)
Change-Id: Icbdd56fa104c03e0a6cc58e441e60286a7f25bb2

core/base_rules.mk

index 186c4db..07ef024 100644 (file)
@@ -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)