diff options
author | Ying Wang <wangying@google.com> | 2012-06-19 14:27:31 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-06-19 14:27:31 -0700 |
commit | 9b76c054c6039088d310a82fc0ed33298756c58b (patch) | |
tree | 9c2a18ce1a7f6b57af61af1d691ff6467d9d8aaf /core | |
parent | a644e7bb66ab590a8758f89febe228f2f8987b32 (diff) | |
parent | 0872a010659d20633f07f4ef54cf61f8e4b6e030 (diff) | |
download | build-9b76c054c6039088d310a82fc0ed33298756c58b.zip build-9b76c054c6039088d310a82fc0ed33298756c58b.tar.gz build-9b76c054c6039088d310a82fc0ed33298756c58b.tar.bz2 |
am 0872a010: Merge "More flexibility to keep/remove R.class in static Java library" into jb-dev
* commit '0872a010659d20633f07f4ef54cf61f8e4b6e030':
More flexibility to keep/remove R.class in static Java library
Diffstat (limited to 'core')
-rw-r--r-- | core/clear_vars.mk | 4 | ||||
-rw-r--r-- | core/definitions.mk | 8 | ||||
-rw-r--r-- | core/static_java_library.mk | 17 |
3 files changed, 19 insertions, 10 deletions
diff --git a/core/clear_vars.mk b/core/clear_vars.mk index f3929ad..5209a04 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -122,9 +122,7 @@ LOCAL_CTS_TEST_PACKAGE:= LOCAL_CTS_TEST_RUNNER:= LOCAL_CLANG:= LOCAL_ADDRESS_SANITIZER:= -# Whether to keep the generated R/Manifest classes when building static Java library -# with Android resource. false(default), or true -LOCAL_KEEP_R_CLASS_IN_STATIC_JAVA_LIBRARY:= +LOCAL_JAR_EXCLUDE_FILES:= # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/definitions.mk b/core/definitions.mk index f3e4966..9fe0a11 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -81,6 +81,10 @@ ALL_FINDBUGS_FILES:= # GPL module license files ALL_GPL_MODULE_LICENSE_FILES:= +# Generated class file names for Android resource. +# They are escaped and quoted so can be passed safely to a bash command. +ANDROID_RESOURCE_GENERATED_CLASSES := 'R.class' 'R$$*.class' 'Manifest.class' 'Manifest$$*.class' + ########################################################### ## Debugging; prints a variable list to stdout ########################################################### @@ -1515,6 +1519,10 @@ fi $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list $(hide) rm -f $(PRIVATE_CLASS_INTERMEDIATES_DIR)/java-source-list-uniq $(hide) rm -f $@ +$(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) \ + -name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \ + $(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \ + | xargs rm -rf) $(hide) jar $(if $(strip $(PRIVATE_JAR_MANIFEST)),-cfm,-cf) \ $@ $(PRIVATE_JAR_MANIFEST) -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) . $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 367ea5f..eaa74aa 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -36,14 +36,18 @@ all_resources := $(strip \ )) ifneq (,$(all_resources)) -# Those files will be excluded from the built jar. -# The R/Manifest classes should be re-generated in the app Module instead. -# Use '' and $ escape because they will be passed to bash. -ifneq (true,$(LOCAL_KEEP_R_CLASS_IN_STATIC_JAVA_LIBRARY)) -LOCAL_JAR_EXCLUDE_FILES := 'R.class' 'R$$*.class' 'Manifest.class' 'Manifest$$*.class' -endif +# By default we should remove the R/Manifest classes from a static Java library, +# because they will be regenerated in the app that uses it. +# But if the static Java library will be used by a library, then we may need to +# keep the generated classes with "LOCAL_JAR_EXCLUDE_FILES := none". +ifndef LOCAL_JAR_EXCLUDE_FILES +LOCAL_JAR_EXCLUDE_FILES := $(ANDROID_RESOURCE_GENERATED_CLASSES) endif +ifeq (none,$(LOCAL_JAR_EXCLUDE_FILES)) +LOCAL_JAR_EXCLUDE_FILES := endif +endif # all_resources +endif # LOCAL_RESOURCE_DIR include $(BUILD_SYSTEM)/java_library.mk @@ -107,4 +111,3 @@ endif endif # $(all_resources) not empty LOCAL_IS_STATIC_JAVA_LIBRARY := -LOCAL_JAR_EXCLUDE_FILES := |