Support more precise package exclusion from JAR files.
Allow LOCAL_JAR_PACKAGES to work on subpackages. Previously it only worked on top-level packages due to a bug in how the directories were recursively deleted. Add LOCAL_JAR_EXCLUDE_PACKAGES to allow specific subpackages to be excluded. This rule applies after LOCAL_JAR_PACKAGES has selected which packages to include. It may also be used independently. Change-Id: Ibd0e495be1a20c84b59c9da132e92100ef3f8705
This commit is contained in:
@@ -137,6 +137,7 @@ LOCAL_CLANG:=
|
|||||||
LOCAL_ADDRESS_SANITIZER:=
|
LOCAL_ADDRESS_SANITIZER:=
|
||||||
LOCAL_JAR_EXCLUDE_FILES:=
|
LOCAL_JAR_EXCLUDE_FILES:=
|
||||||
LOCAL_JAR_PACKAGES:=
|
LOCAL_JAR_PACKAGES:=
|
||||||
|
LOCAL_JAR_EXCLUDE_PACKAGES:=
|
||||||
LOCAL_LINT_FLAGS:=
|
LOCAL_LINT_FLAGS:=
|
||||||
LOCAL_SOURCE_FILES_ALL_GENERATED:= # '',true
|
LOCAL_SOURCE_FILES_ALL_GENERATED:= # '',true
|
||||||
# Don't delete the META_INF dir when merging static Java libraries.
|
# Don't delete the META_INF dir when merging static Java libraries.
|
||||||
|
@@ -1583,10 +1583,14 @@ $(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DI
|
|||||||
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
||||||
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
||||||
| xargs rm -rf)
|
| xargs rm -rf)
|
||||||
$(if $(PRIVATE_JAR_PACKAGES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type d \
|
$(if $(PRIVATE_JAR_PACKAGES), \
|
||||||
|
$(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type f \
|
||||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))) \
|
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))/\*) -delete ; \
|
||||||
| xargs rm -rf)
|
find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -empty -delete)
|
||||||
|
$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) rm -rf \
|
||||||
|
$(foreach pkg, $(PRIVATE_JAR_EXCLUDE_PACKAGES), \
|
||||||
|
$(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))))
|
||||||
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
||||||
$(if $(PRIVATE_JAR_MANIFEST), \
|
$(if $(PRIVATE_JAR_MANIFEST), \
|
||||||
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
||||||
@@ -1639,10 +1643,14 @@ $(if $(PRIVATE_JAR_EXCLUDE_FILES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DI
|
|||||||
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
-name $(word 1, $(PRIVATE_JAR_EXCLUDE_FILES)) \
|
||||||
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
$(addprefix -o -name , $(wordlist 2, 999, $(PRIVATE_JAR_EXCLUDE_FILES))) \
|
||||||
| xargs rm -rf)
|
| xargs rm -rf)
|
||||||
$(if $(PRIVATE_JAR_PACKAGES), $(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type d \
|
$(if $(PRIVATE_JAR_PACKAGES), \
|
||||||
|
$(hide) find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -mindepth 1 -type f \
|
||||||
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
$(foreach pkg, $(PRIVATE_JAR_PACKAGES), \
|
||||||
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))) \
|
-not -path $(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))/\*) -delete ; \
|
||||||
| xargs rm -rf)
|
find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -empty -delete)
|
||||||
|
$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) rm -rf \
|
||||||
|
$(foreach pkg, $(PRIVATE_JAR_EXCLUDE_PACKAGES), \
|
||||||
|
$(PRIVATE_CLASS_INTERMEDIATES_DIR)/$(subst .,/,$(pkg))))
|
||||||
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
$(if $(PRIVATE_RMTYPEDEFS), $(hide) $(RMTYPEDEFS) -v $(PRIVATE_CLASS_INTERMEDIATES_DIR))
|
||||||
$(if $(PRIVATE_JAR_MANIFEST), \
|
$(if $(PRIVATE_JAR_MANIFEST), \
|
||||||
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
$(hide) sed -e 's/%BUILD_NUMBER%/$(BUILD_NUMBER)/' \
|
||||||
|
@@ -67,6 +67,7 @@ $(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
|||||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||||
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES :=
|
||||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
||||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||||
|
@@ -77,6 +77,7 @@ $(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
|||||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||||
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES :=
|
||||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS :=
|
||||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||||
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
$(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||||
|
@@ -332,6 +332,7 @@ endif
|
|||||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES)
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(LOCAL_JAR_EXCLUDE_FILES)
|
||||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES)
|
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(LOCAL_JAR_PACKAGES)
|
||||||
|
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES)
|
||||||
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS := $(LOCAL_RMTYPEDEFS)
|
$(full_classes_compiled_jar): PRIVATE_RMTYPEDEFS := $(LOCAL_RMTYPEDEFS)
|
||||||
$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
|
$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF)
|
||||||
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) \
|
||||||
|
Reference in New Issue
Block a user