Allow LOCAL_RESOURCE_DIR pointing to dir generated during the build
Bug: 15850610
Change-Id: I46b98adb556d8e6bf166761f8bb240006dbe5b14
diff --git a/core/package_internal.mk b/core/package_internal.mk
index d97ce2a..380f7bf 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -82,8 +82,12 @@
LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
endif
+# LOCAL_RESOURCE_DIR may point to resource generated during the build
+need_compile_res :=
ifeq (,$(LOCAL_RESOURCE_DIR))
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+else
+ need_compile_res := true
endif
package_resource_overlays := $(strip \
@@ -106,6 +110,10 @@
) \
))
+ifneq ($(all_resources),)
+ need_compile_res := true
+endif
+
all_res_assets := $(strip $(all_assets) $(all_resources))
package_expected_intermediates_COMMON := $(call local-intermediates-dir,COMMON)
@@ -114,7 +122,7 @@
ifeq (,$(all_assets))
LOCAL_ASSET_DIR:=
endif
-ifeq (,$(all_resources))
+ifneq (true,$(need_compile_res))
LOCAL_RESOURCE_DIR:=
R_file_stamp :=
else
@@ -139,9 +147,9 @@
endif
proguard_options_file :=
ifneq ($(LOCAL_PROGUARD_ENABLED),custom)
-ifneq ($(all_resources),)
+ifeq ($(need_compile_res),true)
proguard_options_file := $(package_expected_intermediates_COMMON)/proguard_options
-endif # all_resources
+endif # need_compile_res
endif # !custom
LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)
@@ -196,7 +204,7 @@
PRIVATE_DEFAULT_APP_TARGET_SDK := $(DEFAULT_APP_TARGET_SDK)
endif
-ifneq ($(all_resources),)
+ifeq ($(need_compile_res),true)
# Since we don't know where the real R.java file is going to end up,
# we need to use another file to stand in its place. We'll just
@@ -265,7 +273,7 @@
$(full_classes_compiled_jar): $(R_file_stamp)
endif
-endif # all_resources
+endif # need_compile_res
ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
# We need to explicitly clear this var so that we don't