From 55dcf71d43bb35511d60a5459adbb79af8b1b5a9 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 6 Mar 2018 17:18:54 -0800 Subject: [PATCH 01/10] Remove missed PRODUCT_AAPT_FLAGS PRODUCT_AAPT_FLAGS was removed by Iacc914114616b5bd19d9a1011802f4f9bca9bc19, remove one more that it missed. Bug: 73885582 Test: m checkbuild Change-Id: I31ea4954f5af5af37f13210925ed5d622625d71b Merged-In: I31ea4954f5af5af37f13210925ed5d622625d71b (cherry picked from commit 8dad6c62d458ca51333622ffac6a703943699fc9) --- core/java_common.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java_common.mk b/core/java_common.mk index c97653b7e..4e9d6855d 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -428,7 +428,7 @@ aapt_flags := endif endif -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) $(PRODUCT_AAPT_FLAGS) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR) From f70aa4cde7c49f013afbbe188528fda552acda9c Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 6 Mar 2018 18:18:06 -0800 Subject: [PATCH 02/10] Move aapt flags from java_common.mk to aapt_flags.mk The aapt flags were being set in java_common.mk, which is used by various entry points. host_dalvik_java_library.mk and host_java_library.mk, and java_library.mk don't support aapt, only package_internal.mk and static_java_library.mk do. Move the aapt flags into aapt_flags.mk, and include it from package_internal.mk and static_java_library.mk. Bug: 73885582 Test: no change to build-${TARGET_PRODUCT}.ninja Change-Id: I124393846d37b9bbc941272cce4274121ac235ef Merged-In: I124393846d37b9bbc941272cce4274121ac235ef (cherry picked from commit b6013af085bb70c8d49c8c87c83ff19581fafa5a) --- core/aapt_flags.mk | 20 ++++++++++++++++++++ core/java_common.mk | 21 --------------------- core/package_internal.mk | 2 ++ core/static_java_library.mk | 2 ++ 4 files changed, 24 insertions(+), 21 deletions(-) create mode 100644 core/aapt_flags.mk diff --git a/core/aapt_flags.mk b/core/aapt_flags.mk new file mode 100644 index 000000000..4e3493aff --- /dev/null +++ b/core/aapt_flags.mk @@ -0,0 +1,20 @@ +## AAPT Flags +# 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 + +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR) diff --git a/core/java_common.mk b/core/java_common.mk index 4e9d6855d..6d86ad80f 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -412,27 +412,6 @@ endif ########################################################## ifndef LOCAL_IS_HOST_MODULE -## AAPT Flags -# 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 - -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS := $(TARGET_AAPT_CHARACTERISTICS) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_MANIFEST_INSTRUMENTATION_FOR) - ifdef aidl_sources ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources) endif diff --git a/core/package_internal.mk b/core/package_internal.mk index e25fd99c3..cb56c5592 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -370,6 +370,8 @@ endif # LOCAL_DATA_BINDING resource_export_package := +include $(BUILD_SYSTEM)/aapt_flags.mk + ifeq ($(need_compile_res),true) ############################### diff --git a/core/static_java_library.mk b/core/static_java_library.mk index b8f508bd7..176d16927 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -135,6 +135,8 @@ $(intermediates.COMMON)/export_proguard_flags: $(import_proguard_flag_files) $(a import_proguard_flag_files := endif +include $(BUILD_SYSTEM)/aapt_flags.mk + # add --non-constant-id to prevent inlining constants. # AAR needs text symbol file R.txt. ifdef LOCAL_USE_AAPT2 From 35e31b65bd238f63577b9ab92e19fb6e500ae525 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 7 Mar 2018 14:16:43 -0800 Subject: [PATCH 03/10] Remove sharding support from make Sharding is not used in make any more, the large java modules (libcore and framework) have moved to Soong. Keeping sharding support complicates java compiling, so remove it. Bug: 73885582 Test: m checkbuild Change-Id: I2932f9e96bfc8f2ebf82095b16d6c0b3c51613f0 Merged-In: I2932f9e96bfc8f2ebf82095b16d6c0b3c51613f0 (cherry picked from commit 5ef6e79c21f33ce94c1f447e6551b167ac6b5c1e) --- core/clear_vars.mk | 1 - core/definitions.mk | 40 ---------------- core/java.mk | 91 +++++++++---------------------------- core/package_internal.mk | 2 - core/static_java_library.mk | 1 - 5 files changed, 21 insertions(+), 114 deletions(-) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 270a1408c..0c94ac378 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -130,7 +130,6 @@ LOCAL_JAR_PACKAGES:= LOCAL_JAR_PROCESSOR:= LOCAL_JAR_PROCESSOR_ARGS:= LOCAL_JAVACFLAGS:= -LOCAL_JAVAC_SHARD_SIZE:= LOCAL_JAVA_LANGUAGE_VERSION:= LOCAL_JAVA_LAYERS_FILE:= LOCAL_JAVA_LIBRARIES:= diff --git a/core/definitions.mk b/core/definitions.mk index 1fb03ff6e..836471ad4 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2222,16 +2222,6 @@ $(call fetch-additional-java-source,$@.tmp) $(hide) tr ' ' '\n' < $@.tmp | $(NORMALIZE_PATH) | sort -u > $@ endef -# $(1): sharding number. -# $(2): Java source files paths. -define save-sharded-java-source-list -$(java_source_list_file).shard.$(1): $(2) $$(NORMALIZE_PATH) - @echo "shard java source list: $$@" - rm -f $$@ - $$(call dump-words-to-file,$(2),$$@.tmp) - $(hide) tr ' ' '\n' < $$@.tmp | $$(NORMALIZE_PATH) | sort -u > $$@ -endef - # Common definition to invoke javac on the host and target. # # $(1): javac @@ -2280,36 +2270,6 @@ $(hide) $(JAR) -cf $@ $(call jar-args-sorted-files-in-directory,$(PRIVATE_CLASS_ $(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@)) endef -# $(1): Javac output jar name. -# $(2): Java source list file. -# $(3): Java header libs. -# $(4): Javac sharding number. -# $(5): Javac sources deps (the arg may neeed $$ in case of containing '#') -define create-classes-full-debug.jar -$(1): PRIVATE_JAVACFLAGS := $$(LOCAL_JAVACFLAGS) $$(annotation_processor_flags) -$(1): PRIVATE_JAR_EXCLUDE_FILES := $$(LOCAL_JAR_EXCLUDE_FILES) -$(1): PRIVATE_JAR_PACKAGES := $$(LOCAL_JAR_PACKAGES) -$(1): PRIVATE_JAR_EXCLUDE_PACKAGES := $$(LOCAL_JAR_EXCLUDE_PACKAGES) -$(1): PRIVATE_DONT_DELETE_JAR_META_INF := $$(LOCAL_DONT_DELETE_JAR_META_INF) -$(1): PRIVATE_JAVA_SOURCE_LIST := $(2) -$(1): PRIVATE_ALL_JAVA_HEADER_LIBRARIES := $(3) -$(1): PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates.COMMON)/classes$(4) -$(1): PRIVATE_ANNO_INTERMEDIATES_DIR := $(intermediates.COMMON)/anno$(4) -$(1): \ - $(2) \ - $(3) \ - $(5) \ - $$(full_java_bootclasspath_libs) \ - $$(full_java_system_modules_deps) \ - $$(layers_file) \ - $$(annotation_processor_deps) \ - $$(NORMALIZE_PATH) \ - $$(JAR_ARGS) \ - | $$(SOONG_JAVAC_WRAPPER) - @echo "Target Java: $$@ ($$(PRIVATE_CLASS_INTERMEDIATES_DIR))" - $$(call compile-java,$$(TARGET_JAVAC),$$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES)) -endef - define transform-java-to-header.jar @echo "$($(PRIVATE_PREFIX)DISPLAY) Turbine: $(PRIVATE_MODULE)" @mkdir -p $(dir $@) diff --git a/core/java.mk b/core/java.mk index ebb86af78..d6f74f086 100644 --- a/core/java.mk +++ b/core/java.mk @@ -327,34 +327,6 @@ java_sources := $(addprefix $(LOCAL_PATH)/, $(filter %.java,$(LOCAL_SRC_FILES))) java_intermediate_sources := $(addprefix $(TARGET_OUT_COMMON_INTERMEDIATES)/, $(filter %.java,$(LOCAL_INTERMEDIATE_SOURCES))) all_java_sources := $(java_sources) $(java_intermediate_sources) -enable_sharding := -ifneq ($(TURBINE_ENABLED),false) -ifneq ($(LOCAL_JAVAC_SHARD_SIZE),) -ifneq ($(LOCAL_JAR_PROCESSOR),) -$(call pretty-error,Cannot set both LOCAL_JAVAC_SHARD_SIZE and LOCAL_JAR_PROCESSOR!) -endif # LOCAL_JAR_PROCESSOR is not empty -enable_sharding := true - -num_shards := $(call int_divide,$(words $(java_sources)),$(LOCAL_JAVAC_SHARD_SIZE)) -ifneq ($(words $(java_sources)),$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(num_shards))) -# increment number of shards by 1. -num_shards := $(call int_plus,$(num_shards),1) -endif - -shard_idx_list := $(call int_range_list,1,$(num_shards)) -sharded_java_source_list_files += $(foreach x,$(shard_idx_list),$(java_source_list_file).shard.$(x)) -sharded_jar_list += $(foreach x,$(shard_idx_list),$(full_classes_compiled_jar).shard.$(x)) - -# always put dynamically-located .java files (generated by Proto/resource, etc) in a new final shard. -# increment number of shards by 1. -num_shards := $(call int_plus,$(num_shards),1) -sharded_java_source_list_files += $(java_source_list_file).shard.$(num_shards) -sharded_jar_list += $(full_classes_compiled_jar).shard.$(num_shards) -LOCAL_INTERMEDIATE_TARGETS += $(sharded_java_source_list_files) -LOCAL_INTERMEDIATE_TARGETS += $(sharded_jar_list) -endif # LOCAL_JAVAC_SHARD_SIZE is not empty -endif # TURBINE_ENABLED != false - include $(BUILD_SYSTEM)/java_common.mk include $(BUILD_SYSTEM)/sdk_check.mk @@ -435,48 +407,6 @@ java_sources_deps := \ $(java_source_list_file): $(java_sources_deps) $(write-java-source-list) -ifdef enable_sharding -$(foreach x,$(shard_idx_list),\ - $(eval $(call save-sharded-java-source-list,$(x),\ - $(wordlist $(call int_plus,1,$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(call int_subtract,$(x),1))),\ - $(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(x)),$(sort $(java_sources)))))) - -# always put dynamically-located .java files (generated by Proto/resource, etc) in a new final shard. -$(java_source_list_file).shard.$(num_shards): PRIVATE_JAVA_INTERMEDIATE_SOURCES := $(java_intermediate_sources) -$(java_source_list_file).shard.$(num_shards): $(java_resource_sources) \ - $(RenderScript_file_stamp) \ - $(proto_java_sources_file_stamp) \ - $(LOCAL_ADDITIONAL_DEPENDENCIES) \ - $(NORMALIZE_PATH) - $(hide) rm -f $@ - $(call dump-words-to-file,$(PRIVATE_JAVA_INTERMEDIATE_SOURCES),$@.tmp) - $(call fetch-additional-java-source,$@.tmp) - $(hide) tr ' ' '\n' < $@.tmp | $(NORMALIZE_PATH) | sort -u > $@ - -# Javac sharding with header libs including its own header jar as one of dependency. -$(foreach x,$(shard_idx_list),\ - $(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar).shard.$(x),\ - $(java_source_list_file).shard.$(x),\ - $(full_java_header_libs) $(full_classes_header_jar),$(x),\ - $(wordlist $(call int_plus,1,$(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(call int_subtract,$(x),1))),\ - $(call int_multiply,$(LOCAL_JAVAC_SHARD_SIZE),$(x)),$(sort $(java_sources)))))) - -# Javac sharding for last shard with additional Java dependencies. -$(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar).shard.$(num_shards),\ - $(java_source_list_file).shard.$(num_shards),$(full_java_header_libs) $(full_classes_header_jar),$(strip \ - $(num_shards)),$$(java_resource_sources) $$(RenderScript_file_stamp) \ - $$(proto_java_sources_file_stamp) $$(LOCAL_ADDITIONAL_DEPENDENCIES))) - -$(full_classes_compiled_jar): PRIVATE_SHARDED_JAR_LIST := $(sharded_jar_list) -$(full_classes_compiled_jar): $(sharded_jar_list) | $(MERGE_ZIPS) - $(MERGE_ZIPS) -j $@ $(PRIVATE_SHARDED_JAR_LIST) -else -# we can't use single $ for java_sources_deps since it may contain hash '#' sign. -$(eval $(call create-classes-full-debug.jar,$(full_classes_compiled_jar),\ - $(java_source_list_file),$(full_java_header_libs),,$$(java_sources_deps))) - -endif # ifdef enable_sharding - ifneq ($(TURBINE_ENABLED),false) $(full_classes_turbine_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags) @@ -510,6 +440,27 @@ $(eval $(call copy-one-file,$(full_classes_header_jarjar),$(full_classes_header_ endif # TURBINE_ENABLED != false +$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags) +$(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_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUDE_PACKAGES) +$(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF) +$(full_classes_compiled_jar): PRIVATE_JAVA_SOURCE_LIST := $(java_source_list_file) +$(full_classes_compiled_jar): PRIVATE_ALL_JAVA_HEADER_LIBRARIES := $(full_java_header_libs) +$(full_classes_compiled_jar): \ + $(java_source_list_file) \ + $(full_java_header_libs) \ + $(java_sources_deps) \ + $(full_java_bootclasspath_libs) \ + $(full_java_system_modules_deps) \ + $(layers_file) \ + $(annotation_processor_deps) \ + $(NORMALIZE_PATH) \ + $(JAR_ARGS) \ + | $(SOONG_JAVAC_WRAPPER) + @echo "Target Java: $@ + $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES)) + javac-check : $(full_classes_compiled_jar) javac-check-$(LOCAL_MODULE) : $(full_classes_compiled_jar) diff --git a/core/package_internal.mk b/core/package_internal.mk index cb56c5592..87380cce0 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -364,7 +364,6 @@ $(data_binding_stamp) : $(all_res_assets) $(full_android_manifest) \ # Make sure the data-binding process happens before javac and generation of R.java. $(R_file_stamp): $(data_binding_stamp) $(java_source_list_file): $(data_binding_stamp) -$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(data_binding_stamp))) $(full_classes_compiled_jar): $(data_binding_stamp) endif # LOCAL_DATA_BINDING @@ -470,7 +469,6 @@ $(LOCAL_BUILT_MODULE): $(R_file_stamp) # The R.java file must exist by the time the java source # list is generated $(java_source_list_file): $(R_file_stamp) -$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(R_file_stamp))) endif # need_compile_res diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 176d16927..059a69e53 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -194,7 +194,6 @@ endif # LOCAL_USE_AAPT2 $(LOCAL_BUILT_MODULE): $(R_file_stamp) $(java_source_list_file): $(R_file_stamp) -$(foreach x,$(sharded_java_source_list_files),$(eval $(x): $(R_file_stamp))) $(full_classes_compiled_jar): $(R_file_stamp) $(full_classes_turbine_jar): $(R_file_stamp) From e793ae62f5978771f73d42f1c03e403706c1e2c3 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 12 Mar 2018 18:04:08 -0700 Subject: [PATCH 04/10] Remove unused file lists RS_FILES and AIDL_FILES were used for cleaning up the intermediate src dir, but are no longer used after If7529979de6fa62a651933a3a974f47b033851d6 and I01feff7cc399ac5b88b83333a1ac86928d0a81e6. Bug: 73885582 Test: m checkbuild Change-Id: If2653f846b568fd2587c8e055ef820e17760f133 Merged-In: If2653f846b568fd2587c8e055ef820e17760f133 (cherry picked from commit c3e7074df1b5c75b77fcec0fe45717a3b7a12ef3) --- core/java_common.mk | 8 -------- 1 file changed, 8 deletions(-) diff --git a/core/java_common.mk b/core/java_common.mk index 6d86ad80f..e607bb71f 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -411,14 +411,6 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST := endif ########################################################## -ifndef LOCAL_IS_HOST_MODULE -ifdef aidl_sources -ALL_MODULES.$(my_register_name).AIDL_FILES := $(aidl_sources) -endif -ifdef renderscript_sources -ALL_MODULES.$(my_register_name).RS_FILES := $(renderscript_sources_fullpath) -endif -endif # !LOCAL_IS_HOST_MODULE full_java_libs := $(full_shared_java_libs) $(full_static_java_libs) $(LOCAL_CLASSPATH) full_java_header_libs := $(full_shared_java_header_libs) $(full_static_java_header_libs) From ecabf53bee05039881890d82854c1c4ad15ff2b6 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 12 Mar 2018 18:17:25 -0700 Subject: [PATCH 05/10] Remove unused .fs file suppport .fs files are obsolete. Bug: 73885582 Test: m checkbuild Change-Id: I74b618099333fe565c7b235994be64e6466d2da6 Merged-In: I74b618099333fe565c7b235994be64e6466d2da6 (cherry picked from commit 93d6550c5338a68dd6e3bb9cced58902faa9665d) --- core/java.mk | 5 ++--- core/java_common.mk | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/java.mk b/core/java.mk index d6f74f086..a4145f729 100644 --- a/core/java.mk +++ b/core/java.mk @@ -104,9 +104,8 @@ LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src ############################################################### ## .rs files: RenderScript sources to .java files and .bc files -## .fs files: Filterscript sources to .java files and .bc files ############################################################### -renderscript_sources := $(filter %.rs %.fs,$(LOCAL_SRC_FILES)) +renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES)) # Because names of the java files from RenderScript are unknown until the # .rs file(s) are compiled, we have to depend on a timestamp file. RenderScript_file_stamp := @@ -167,7 +166,7 @@ ifneq ($(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE),) LOCAL_RENDERSCRIPT_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE) endif -bc_files := $(patsubst %.fs,%.bc, $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources)))) +bc_files := $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources))) bc_dep_files := $(addprefix $(renderscript_intermediate.COMMON)/,$(patsubst %.bc,%.d,$(bc_files))) $(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) diff --git a/core/java_common.mk b/core/java_common.mk index e607bb71f..3fdf6ff0c 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -177,7 +177,7 @@ endif # java_resource_file_groups ##################################### ## Warn if there is unrecognized file in LOCAL_SRC_FILES. my_unknown_src_files := $(filter-out \ - %.java %.aidl %.proto %.logtags %.fs %.rs, \ + %.java %.aidl %.proto %.logtags %.rs, \ $(LOCAL_SRC_FILES) $(LOCAL_INTERMEDIATE_SOURCES) $(LOCAL_GENERATED_SOURCES)) ifneq ($(my_unknown_src_files),) $(warning $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Unused source files: $(my_unknown_src_files)) From f13eb55448c9364c8c7a20d52d84438a1fed3deb Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 7 Mar 2018 15:44:54 -0800 Subject: [PATCH 06/10] Add LOCAL_SRCJARS support Allow java modules to take jars containing .java files as an input. For turbine, pass them directly to turbine. For javac, extract them to a directory and pass a list of the files to javac. Bug: 73885582 Test: m checkbuild Change-Id: Ib4351a5b4b165a55e5fb02ee2680466db368983a Merged-In: Ib4351a5b4b165a55e5fb02ee2680466db368983a (cherry picked from commit 11e2d55c0fc8a6c00820c3ae9fc0d2a4c5723c54) --- core/definitions.mk | 9 ++++++--- core/host_dalvik_java_library.mk | 6 ++++++ core/host_java_library.mk | 5 +++++ core/java.mk | 6 ++++++ core/java_common.mk | 2 +- core/package_internal.mk | 2 +- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index 836471ad4..23f7ae11d 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2228,9 +2228,11 @@ endef # $(2): classpath_libs define compile-java $(hide) rm -f $@ -$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) +$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),$(PRIVATE_SRCJAR_INTERMEDIATES_DIR)) $(hide) mkdir -p $(dir $@) -$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) +$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),$(PRIVATE_SRCJAR_INTERMEDIATES_DIR)) +$(if $(PRIVATE_SRCJARS),\ + $(EXTRACT_SRCJARS) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(PRIVATE_SRCJAR_LIST_FILE) $(PRIVATE_SRCJARS)) $(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \ $(SOONG_JAVAC_WRAPPER) $(JAVAC_WRAPPER) $(1) -encoding UTF-8 \ $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ @@ -2250,6 +2252,7 @@ $(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \ -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) -s $(PRIVATE_ANNO_INTERMEDIATES_DIR) \ $(PRIVATE_JAVACFLAGS) \ \@$(PRIVATE_JAVA_SOURCE_LIST) \ + $(if $(PRIVATE_SRCJARS),\@$(PRIVATE_SRCJAR_LIST_FILE)) \ || ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 ) \ fi $(if $(PRIVATE_JAVA_LAYERS_FILE), $(hide) build/make/tools/java-layers.py \ @@ -2278,7 +2281,7 @@ define transform-java-to-header.jar $(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \ $(JAVA) -jar $(TURBINE) \ --output $@.premerged --temp_dir $(dir $@)/classes-turbine \ - --sources \@$(PRIVATE_JAVA_SOURCE_LIST) \ + --sources \@$(PRIVATE_JAVA_SOURCE_LIST) --source_jars $(PRIVATE_SRCJARS) \ --javacopts $(PRIVATE_JAVACFLAGS) $(COMMON_JDK_FLAGS) \ $(addprefix --bootclasspath ,$(strip \ $(call normalize-path-list,$(PRIVATE_BOOTCLASSPATH)) \ diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk index 20663d159..fc5b75c0c 100644 --- a/core/host_dalvik_java_library.mk +++ b/core/host_dalvik_java_library.mk @@ -76,6 +76,7 @@ java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ $(proto_java_sources_file_stamp) \ + $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) $(java_source_list_file): $(java_sources_deps) @@ -86,6 +87,9 @@ $(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annota $(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := +$(full_classes_compiled_jar): PRIVATE_SRCJARS := $(LOCAL_SRCJARS) +$(full_classes_compiled_jar): PRIVATE_SRCJAR_LIST_FILE := $(intermediates.COMMON)/srcjar-list +$(full_classes_compiled_jar): PRIVATE_SRCJAR_INTERMEDIATES_DIR := $(intermediates.COMMON)/srcjars $(full_classes_compiled_jar): \ $(java_source_list_file) \ $(java_sources_deps) \ @@ -95,6 +99,7 @@ $(full_classes_compiled_jar): \ $(annotation_processor_deps) \ $(NORMALIZE_PATH) \ $(JAR_ARGS) \ + $(EXTRACT_SRCJARS) \ | $(SOONG_JAVAC_WRAPPER) $(transform-host-java-to-dalvik-package) @@ -102,6 +107,7 @@ ifneq ($(TURBINE_ENABLED),false) $(full_classes_turbine_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags) $(full_classes_turbine_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF) +$(full_classes_turbine_jar): PRIVATE_SRCJARS := $(LOCAL_SRCJARS) $(full_classes_turbine_jar): \ $(java_source_list_file) \ $(java_sources_deps) \ diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 47404c8e3..462ff6a75 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -63,6 +63,7 @@ java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ $(proto_java_sources_file_stamp) \ + $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) $(java_source_list_file): $(java_sources_deps) @@ -73,6 +74,9 @@ $(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annota $(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES := $(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES := $(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := +$(full_classes_compiled_jar): PRIVATE_SRCJARS := $(LOCAL_SRCJARS) +$(full_classes_compiled_jar): PRIVATE_SRCJAR_LIST_FILE := $(intermediates.COMMON)/srcjar-list +$(full_classes_compiled_jar): PRIVATE_SRCJAR_INTERMEDIATES_DIR := $(intermediates.COMMON)/srcjars $(full_classes_compiled_jar): \ $(java_source_list_file) \ $(java_sources_deps) \ @@ -82,6 +86,7 @@ $(full_classes_compiled_jar): \ $(NORMALIZE_PATH) \ $(ZIPTIME) \ $(JAR_ARGS) \ + $(EXTRACT_SRCJARS) \ | $(SOONG_JAVAC_WRAPPER) $(transform-host-java-to-package) $(remove-timestamps-from-package) diff --git a/core/java.mk b/core/java.mk index a4145f729..efe99f8bb 100644 --- a/core/java.mk +++ b/core/java.mk @@ -401,6 +401,7 @@ java_sources_deps := \ $(java_resource_sources) \ $(RenderScript_file_stamp) \ $(proto_java_sources_file_stamp) \ + $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) $(java_source_list_file): $(java_sources_deps) @@ -409,6 +410,7 @@ $(java_source_list_file): $(java_sources_deps) ifneq ($(TURBINE_ENABLED),false) $(full_classes_turbine_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags) +$(full_classes_turbine_jar): PRIVATE_SRCJARS := $(LOCAL_SRCJARS) $(full_classes_turbine_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF) $(full_classes_turbine_jar): \ $(java_source_list_file) \ @@ -446,6 +448,9 @@ $(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES := $(LOCAL_JAR_EXCLUD $(full_classes_compiled_jar): PRIVATE_DONT_DELETE_JAR_META_INF := $(LOCAL_DONT_DELETE_JAR_META_INF) $(full_classes_compiled_jar): PRIVATE_JAVA_SOURCE_LIST := $(java_source_list_file) $(full_classes_compiled_jar): PRIVATE_ALL_JAVA_HEADER_LIBRARIES := $(full_java_header_libs) +$(full_classes_compiled_jar): PRIVATE_SRCJARS := $(LOCAL_SRCJARS) +$(full_classes_compiled_jar): PRIVATE_SRCJAR_LIST_FILE := $(intermediates.COMMON)/srcjar-list +$(full_classes_compiled_jar): PRIVATE_SRCJAR_INTERMEDIATES_DIR := $(intermediates.COMMON)/srcjars $(full_classes_compiled_jar): \ $(java_source_list_file) \ $(full_java_header_libs) \ @@ -456,6 +461,7 @@ $(full_classes_compiled_jar): \ $(annotation_processor_deps) \ $(NORMALIZE_PATH) \ $(JAR_ARGS) \ + $(EXTRACT_SRCJARS) \ | $(SOONG_JAVAC_WRAPPER) @echo "Target Java: $@ $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES)) diff --git a/core/java_common.mk b/core/java_common.mk index 3fdf6ff0c..4b10d2d4c 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -188,7 +188,7 @@ endif # LOCAL_SOURCE_FILES_ALL_GENERATED is set only if the module does not have static source files, # but generated source files in its LOCAL_INTERMEDIATE_SOURCE_DIR. # You have to set up the dependency in some other way. -need_compile_java := $(strip $(all_java_sources)$(all_res_assets)$(java_resource_sources))$(LOCAL_STATIC_JAVA_LIBRARIES)$(filter true,$(LOCAL_SOURCE_FILES_ALL_GENERATED)) +need_compile_java := $(strip $(all_java_sources)$(LOCAL_SRCJARS)$(all_res_assets)$(java_resource_sources))$(LOCAL_STATIC_JAVA_LIBRARIES)$(filter true,$(LOCAL_SOURCE_FILES_ALL_GENERATED)) ifdef need_compile_java annotation_processor_flags := diff --git a/core/package_internal.mk b/core/package_internal.mk index 87380cce0..d940745e5 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -274,7 +274,7 @@ endif # EMMA_INSTRUMENT is true ifeq (true,$(LOCAL_EMMA_INSTRUMENT)) ifeq (true,$(EMMA_INSTRUMENT_STATIC)) -ifneq ($(LOCAL_SRC_FILES)$(LOCAL_STATIC_JAVA_LIBRARIES)$(LOCAL_SOURCE_FILES_ALL_GENERATED),) +ifneq ($(LOCAL_SRC_FILES)$(LOCAL_SRCJARS)$(LOCAL_STATIC_JAVA_LIBRARIES)$(LOCAL_SOURCE_FILES_ALL_GENERATED),) # Only add jacocoagent if the package contains some java code LOCAL_STATIC_JAVA_LIBRARIES += jacocoagent # Exclude jacoco classes from proguard From 0a717ccd3fea7c705948da482e6628952a948174 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 12 Mar 2018 23:33:15 -0700 Subject: [PATCH 07/10] Allow aapt2 rules to take zipped resource files Allow aapt2 rules to take zipped resource files similar to the way the javac rules take srcjars. For now, unzip the files using extract_srcjars.sh, and then use aapt2 compile --dir. Eventually it could be done with aapt2 compile --zip. Bug: 73885582 Bug: 74574557 Test: m checkbuild Change-Id: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1 Merged-In: I97ea3ff305e7a9ef2a908b4cf0bca903af62c6b1 (cherry picked from commit bc0c494d3af1bce637289e4aceaba90cbdadacba) --- core/aapt2.mk | 23 ++++++++++++++++++----- core/definitions.mk | 9 +++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/core/aapt2.mk b/core/aapt2.mk index c582e30df..895bd371f 100644 --- a/core/aapt2.mk +++ b/core/aapt2.mk @@ -12,6 +12,7 @@ # - proguard_options_file # - my_generated_res_dirs: Resources generated during the build process and we have to compile them in a single run of aapt2. # - my_generated_res_dirs_deps: the dependency to use for my_generated_res_dirs. +# - my_generated_res_zips: Zip files containing resources # - my_apk_split_configs: The configurations for which to generate splits. # - built_apk_splits: The paths where AAPT should generate the splits. # @@ -35,7 +36,7 @@ my_overlay_resources_flat := \ $(eval $(call aapt2-compile-one-resource-file-rule,$(r),$(o)))\ $(o)) -my_generated_resources_flata := +my_resources_flata := # Compile generated resources ifneq ($(my_generated_res_dirs),) my_generated_resources_flata := $(my_compiled_res_base_dir)/gen_res.flata @@ -44,12 +45,23 @@ $(my_generated_resources_flata) : $(my_generated_res_dirs_deps) $(AAPT2) @echo "AAPT2 compile $@ <- $(PRIVATE_SOURCE_RES_DIRS)" $(call aapt2-compile-resource-dirs) -my_generated_resources_flata += $(my_generated_resources_flata) +my_resources_flata += $(my_generated_resources_flata) +endif + +# Compile zipped resources +ifneq ($(my_generated_res_zips),) +my_zipped_resources_flata := $(my_compiled_res_base_dir)/zip_res.flata +$(my_zipped_resources_flata): PRIVATE_SOURCE_RES_ZIPS := $(my_generated_res_zips) +$(my_zipped_resources_flata) : $(my_generated_res_deps) $(AAPT2) $(EXTRACT_SRCJARS) + @echo "AAPT2 compile $@ <- $(PRIVATE_SOURCE_RES_ZIPS)" + $(call aapt2-compile-resource-zips) + +my_resources_flata += $(my_zipped_resources_flata) endif # Always set --pseudo-localize, it will be stripped out later for release # builds that don't want it. -$(my_res_resources_flat) $(my_overlay_resources_flat) $(my_generated_resources_flata): \ +$(my_res_resources_flat) $(my_overlay_resources_flat) $(my_resources_flata): \ PRIVATE_AAPT2_CFLAGS := --pseudo-localize my_static_library_resources := $(foreach l, $(call reverse-list,$(LOCAL_STATIC_ANDROID_LIBRARIES)),\ @@ -67,7 +79,7 @@ $(my_res_package): PRIVATE_AAPT_FLAGS += $(addprefix --split ,$(join $(built_apk endif $(my_res_package): PRIVATE_RES_FLAT := $(my_res_resources_flat) -$(my_res_package): PRIVATE_OVERLAY_FLAT := $(my_static_library_resources) $(my_generated_resources_flata) $(my_overlay_resources_flat) +$(my_res_package): PRIVATE_OVERLAY_FLAT := $(my_static_library_resources) $(my_resources_flata) $(my_overlay_resources_flat) $(my_res_package): PRIVATE_SHARED_ANDROID_LIBRARIES := $(my_shared_library_resources) $(my_res_package): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file) $(my_res_package): PRIVATE_ASSET_DIRS := $(my_asset_dirs) @@ -95,7 +107,7 @@ endif $(my_res_package): $(full_android_manifest) $(my_static_library_resources) $(my_shared_library_resources) $(my_res_package): $(my_full_asset_paths) $(my_res_package): $(my_res_resources_flat) $(my_overlay_resources_flat) \ - $(my_generated_resources_flata) $(my_static_library_resources) \ + $(my_resources_flata) $(my_static_library_resources) \ $(AAPT2) @echo "AAPT2 link $@" $(call aapt2-link) @@ -118,3 +130,4 @@ my_full_asset_paths := my_apk_split_configs := my_generated_res_dirs := my_generated_res_dirs_deps := +my_generated_res_zips := diff --git a/core/definitions.mk b/core/definitions.mk index 23f7ae11d..20c32b81c 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2079,6 +2079,15 @@ $(hide) $(AAPT2) compile -o $@ $(addprefix --dir ,$(PRIVATE_SOURCE_RES_DIRS)) \ $(PRIVATE_AAPT2_CFLAGS) --legacy endef +# TODO(b/74574557): use aapt2 compile --zip if it gets implemented +define aapt2-compile-resource-zips +@mkdir -p $(dir $@) +rm -rf $@.contents +mkdir -p $@.contents +$(EXTRACT_SRCJARS) $@.contents $@.list $(PRIVATE_SOURCE_RES_ZIPS) +$(hide) $(AAPT2) compile -o $@ --dir $@.tmp $(PRIVATE_AAPT2_CFLAGS) --legacy +endef + # Set up rule to compile one resource file with aapt2. # Must be called with $(eval). # $(1): the source file From ce99f050259bea74313cd0e1163c525f8a927089 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 15 Mar 2018 13:05:46 -0700 Subject: [PATCH 08/10] Allow compiles with only srcjars Some javac and turbine compiles have no source files but sources from srcjars. Continue with compilation if the java source list is empty but the srcjar source list is not. Bug: 73885582 Test: m checkbuild Change-Id: Ica412de2dd1b1bfc12c01c3eafca884220d42771 Merged-In: Ica412de2dd1b1bfc12c01c3eafca884220d42771 (cherry picked from commit 0c0adb993cf271c02462a3e15dc5f50525d21b2c) --- core/definitions.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index 20c32b81c..96f6c5906 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2242,7 +2242,7 @@ $(hide) mkdir -p $(dir $@) $(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),$(PRIVATE_SRCJAR_INTERMEDIATES_DIR)) $(if $(PRIVATE_SRCJARS),\ $(EXTRACT_SRCJARS) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(PRIVATE_SRCJAR_LIST_FILE) $(PRIVATE_SRCJARS)) -$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \ +$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) $(if $(PRIVATE_SRCJARS),-o -s $(PRIVATE_SRCJAR_LIST_FILE) )] ; then \ $(SOONG_JAVAC_WRAPPER) $(JAVAC_WRAPPER) $(1) -encoding UTF-8 \ $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ $(if $(PRIVATE_USE_SYSTEM_MODULES), \ @@ -2287,7 +2287,7 @@ define transform-java-to-header.jar @mkdir -p $(dir $@) @rm -rf $(dir $@)/classes-turbine @mkdir $(dir $@)/classes-turbine -$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) ] ; then \ +$(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) -o -n "$(PRIVATE_SRCJARS)" ] ; then \ $(JAVA) -jar $(TURBINE) \ --output $@.premerged --temp_dir $(dir $@)/classes-turbine \ --sources \@$(PRIVATE_JAVA_SOURCE_LIST) --source_jars $(PRIVATE_SRCJARS) \ From a73ea16f9537246c0303ec919ab0b7fe2789a294 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 15 Mar 2018 16:26:08 -0700 Subject: [PATCH 09/10] Replace extract_srcjars.sh with zipsync Use zipsync instead of extract_srcjars.sh. Also fixes an issue where unzipping a resource zip would ignore anything that wasn't a *.java file. Bug: 73885582 Test: m checkbuild Change-Id: I1c25f65afa196614879071c8655866febebac185 Merged-In: I1c25f65afa196614879071c8655866febebac185 (cherry picked from commit 3f99cd5933952e08f2fc085f98b4d8eac7ae5ada) --- core/aapt2.mk | 2 +- core/definitions.mk | 10 ++++------ core/droiddoc.mk | 11 +++++------ core/host_dalvik_java_library.mk | 2 +- core/host_java_library.mk | 2 +- core/java.mk | 2 +- 6 files changed, 13 insertions(+), 16 deletions(-) diff --git a/core/aapt2.mk b/core/aapt2.mk index 895bd371f..7d9d8ceb8 100644 --- a/core/aapt2.mk +++ b/core/aapt2.mk @@ -52,7 +52,7 @@ endif ifneq ($(my_generated_res_zips),) my_zipped_resources_flata := $(my_compiled_res_base_dir)/zip_res.flata $(my_zipped_resources_flata): PRIVATE_SOURCE_RES_ZIPS := $(my_generated_res_zips) -$(my_zipped_resources_flata) : $(my_generated_res_deps) $(AAPT2) $(EXTRACT_SRCJARS) +$(my_zipped_resources_flata) : $(my_generated_res_deps) $(AAPT2) $(ZIPSYNC) @echo "AAPT2 compile $@ <- $(PRIVATE_SOURCE_RES_ZIPS)" $(call aapt2-compile-resource-zips) diff --git a/core/definitions.mk b/core/definitions.mk index 96f6c5906..e6bd19424 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -2082,9 +2082,7 @@ endef # TODO(b/74574557): use aapt2 compile --zip if it gets implemented define aapt2-compile-resource-zips @mkdir -p $(dir $@) -rm -rf $@.contents -mkdir -p $@.contents -$(EXTRACT_SRCJARS) $@.contents $@.list $(PRIVATE_SOURCE_RES_ZIPS) +$(ZIPSYNC) -d $@.contents -l $@.list $(PRIVATE_SOURCE_RES_ZIPS) $(hide) $(AAPT2) compile -o $@ --dir $@.tmp $(PRIVATE_AAPT2_CFLAGS) --legacy endef @@ -2237,11 +2235,11 @@ endef # $(2): classpath_libs define compile-java $(hide) rm -f $@ -$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),$(PRIVATE_SRCJAR_INTERMEDIATES_DIR)) +$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(hide) mkdir -p $(dir $@) -$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),$(PRIVATE_SRCJAR_INTERMEDIATES_DIR)) +$(hide) mkdir -p $(PRIVATE_CLASS_INTERMEDIATES_DIR) $(PRIVATE_ANNO_INTERMEDIATES_DIR) $(if $(PRIVATE_SRCJARS),\ - $(EXTRACT_SRCJARS) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(PRIVATE_SRCJAR_LIST_FILE) $(PRIVATE_SRCJARS)) + $(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS)) $(hide) if [ -s $(PRIVATE_JAVA_SOURCE_LIST) $(if $(PRIVATE_SRCJARS),-o -s $(PRIVATE_SRCJAR_LIST_FILE) )] ; then \ $(SOONG_JAVAC_WRAPPER) $(JAVAC_WRAPPER) $(1) -encoding UTF-8 \ $(if $(findstring true,$(PRIVATE_WARNINGS_ENABLE)),$(xlint_unchecked),) \ diff --git a/core/droiddoc.mk b/core/droiddoc.mk index 81154814b..b174f31a4 100644 --- a/core/droiddoc.mk +++ b/core/droiddoc.mk @@ -189,15 +189,15 @@ $(full_target): \ $(droiddoc) \ $(html_dir_files) \ $(full_java_libs) \ - $(EXTRACT_SRCJARS) \ + $(ZIPSYNC) \ $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) @echo Docs droiddoc: $(PRIVATE_OUT_DIR) $(hide) mkdir -p $(dir $@) - $(hide) rm -rf $(PRIVATE_STUB_OUT_DIR) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) + $(hide) rm -rf $(PRIVATE_STUB_OUT_DIR) $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) - $(EXTRACT_SRCJARS) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(PRIVATE_SRCJAR_LIST_FILE) $(PRIVATE_SRCJARS) + $(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS) $(hide) ( \ $(JAVADOC) \ -encoding UTF-8 \ @@ -243,13 +243,12 @@ else # For OpenJDK 8 we can use -bootclasspath to define the core libraries code. $(full_target): PRIVATE_BOOTCLASSPATH_ARG := $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) endif -$(full_target): $(full_src_files) $(LOCAL_GENERATED_SOURCES) $(full_java_libs) $(EXTRACT_SRCJARS) $(LOCAL_SRCJARS) $(LOCAL_ADDITIONAL_DEPENDENCIES) +$(full_target): $(full_src_files) $(LOCAL_GENERATED_SOURCES) $(full_java_libs) $(ZIPSYNC) $(LOCAL_SRCJARS) $(LOCAL_ADDITIONAL_DEPENDENCIES) @echo Docs javadoc: $(PRIVATE_OUT_DIR) @mkdir -p $(dir $@) - rm -rf $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(call prepare-doc-source-list,$(PRIVATE_SRC_LIST_FILE),$(PRIVATE_JAVA_FILES), \ $(PRIVATE_SOURCE_INTERMEDIATES_DIR) $(PRIVATE_ADDITIONAL_JAVA_DIR)) - $(EXTRACT_SRCJARS) $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) $(PRIVATE_SRCJAR_LIST_FILE) $(PRIVATE_SRCJARS) + $(ZIPSYNC) -d $(PRIVATE_SRCJAR_INTERMEDIATES_DIR) -l $(PRIVATE_SRCJAR_LIST_FILE) -f "*.java" $(PRIVATE_SRCJARS) $(hide) ( \ $(JAVADOC) \ -encoding UTF-8 \ diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk index fc5b75c0c..1ef0ccb17 100644 --- a/core/host_dalvik_java_library.mk +++ b/core/host_dalvik_java_library.mk @@ -99,7 +99,7 @@ $(full_classes_compiled_jar): \ $(annotation_processor_deps) \ $(NORMALIZE_PATH) \ $(JAR_ARGS) \ - $(EXTRACT_SRCJARS) \ + $(ZIPSYNC) \ | $(SOONG_JAVAC_WRAPPER) $(transform-host-java-to-dalvik-package) diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 462ff6a75..32295ab19 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -86,7 +86,7 @@ $(full_classes_compiled_jar): \ $(NORMALIZE_PATH) \ $(ZIPTIME) \ $(JAR_ARGS) \ - $(EXTRACT_SRCJARS) \ + $(ZIPSYNC) \ | $(SOONG_JAVAC_WRAPPER) $(transform-host-java-to-package) $(remove-timestamps-from-package) diff --git a/core/java.mk b/core/java.mk index efe99f8bb..019a989ee 100644 --- a/core/java.mk +++ b/core/java.mk @@ -461,7 +461,7 @@ $(full_classes_compiled_jar): \ $(annotation_processor_deps) \ $(NORMALIZE_PATH) \ $(JAR_ARGS) \ - $(EXTRACT_SRCJARS) \ + $(ZIPSYNC) \ | $(SOONG_JAVAC_WRAPPER) @echo "Target Java: $@ $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_ALL_JAVA_HEADER_LIBRARIES)) From 65c7cdf2a74fc425920ff2b6ad4512cd663053f9 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 20 Feb 2018 14:31:33 -0800 Subject: [PATCH 10/10] Remove framework_res_package_export_deps framework_res_package_export is now always either the prebuilt android.jar from an SDK or a package-export.apk generated by Soong, so the dependency on R.stamp is never useful. Remove all assignments to framework_res_package_export_deps, and replace usages with frameworks_res_package_export. Bug: 73885582 Test: m checkbuild Change-Id: If484e9eb08061cb0ed0697755f13db71d741aaab Merged-In: If484e9eb08061cb0ed0697755f13db71d741aaab (cherry picked from commit 6e136922f3ec852c923070d60450191286a228d1) --- core/package_internal.mk | 9 +-------- core/prebuilt_internal.mk | 6 +----- core/static_java_library.mk | 8 ++------ 3 files changed, 4 insertions(+), 19 deletions(-) diff --git a/core/package_internal.mk b/core/package_internal.mk index d940745e5..f9ed4ef5b 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -473,7 +473,6 @@ $(java_source_list_file): $(R_file_stamp) endif # need_compile_res framework_res_package_export := -framework_res_package_export_deps := ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) # Most packages should link against the resources defined by framework-res. @@ -485,15 +484,9 @@ else ifneq ($(filter-out current system_current test_current,$(LOCAL_SDK_RES_VER # for released sdk versions, the platform resources were built into android.jar. framework_res_package_export := \ $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar -framework_res_package_export_deps := $(framework_res_package_export) else # LOCAL_SDK_RES_VERSION framework_res_package_export := \ $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk -# We can't depend directly on the export.apk file; it won't get its -# PRIVATE_ vars set up correctly if we do. Instead, depend on the -# corresponding R.stamp file, which lists the export.apk as a dependency. -framework_res_package_export_deps := \ - $(dir $(framework_res_package_export))src/R.stamp endif # LOCAL_SDK_RES_VERSION endif # LOCAL_NO_STANDARD_LIBRARIES @@ -503,7 +496,7 @@ all_library_res_package_exports := \ $(call intermediates-dir-for,APPS,$(lib),,COMMON)/package-export.apk) all_library_res_package_export_deps := \ - $(framework_res_package_export_deps) \ + $(framework_res_package_export) \ $(foreach lib,$(LOCAL_RES_LIBRARIES),\ $(call intermediates-dir-for,APPS,$(lib),,COMMON)/src/R.stamp) $(resource_export_package) $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(all_library_res_package_export_deps) diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index d4f552231..96e26137a 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -615,18 +615,14 @@ ifeq ($(LOCAL_SDK_RES_VERSION),) endif framework_res_package_export := -framework_res_package_export_deps := # Please refer to package.mk ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) ifneq ($(filter-out current system_current test_current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current test_current,$(LOCAL_SDK_RES_VERSION))),) framework_res_package_export := \ $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar -framework_res_package_export_deps := $(framework_res_package_export) else framework_res_package_export := \ $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk -framework_res_package_export_deps := \ - $(dir $(framework_res_package_export))src/R.stamp endif endif @@ -644,7 +640,7 @@ $(my_res_package): PRIVATE_DEFAULT_APP_TARGET_SDK := $(my_res_package): PRIVATE_PRODUCT_AAPT_CONFIG := $(my_res_package): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(my_res_package): PRIVATE_TARGET_AAPT_CHARACTERISTICS := -$(my_res_package) : $(framework_res_package_export_deps) +$(my_res_package) : $(framework_res_package_export) full_android_manifest := my_res_resources := diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 059a69e53..309f76b01 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -106,18 +106,14 @@ ifeq ($(LOCAL_SDK_RES_VERSION),) endif framework_res_package_export := -framework_res_package_export_deps := # Please refer to package.mk ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) ifneq ($(filter-out current system_current test_current,$(LOCAL_SDK_RES_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current test_current,$(LOCAL_SDK_RES_VERSION))),) framework_res_package_export := \ $(HISTORICAL_SDK_VERSIONS_ROOT)/$(LOCAL_SDK_RES_VERSION)/android.jar -framework_res_package_export_deps := $(framework_res_package_export) else framework_res_package_export := \ $(call intermediates-dir-for,APPS,framework-res,,COMMON)/package-export.apk -framework_res_package_export_deps := \ - $(dir $(framework_res_package_export))src/R.stamp endif endif @@ -183,10 +179,10 @@ my_generated_res_dirs_deps := $(RenderScript_file_stamp) endif # renderscript_target_api < 21 endif # renderscript_target_api is set include $(BUILD_SYSTEM)/aapt2.mk -$(my_res_package) : $(framework_res_package_export_deps) +$(my_res_package) : $(framework_res_package_export) else $(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_resources) -$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export_deps) +$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" $(create-resource-java-files) $(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@