Merge "More flexibility to keep/remove R.class in static Java library" into jb-dev
This commit is contained in:
commit
0872a01065
3 changed files with 19 additions and 10 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 :=
|
||||
|
|
Loading…
Reference in a new issue