forked from openkylin/platform_build
Merge changes I97ea3ff3,Ib4351a5b,I74b61809,If2653f84,I2932f9e9, ...
* changes: Allow aapt2 rules to take zipped resource files Add LOCAL_SRCJARS support Remove unused .fs file suppport Remove unused file lists Remove sharding support from make Move aapt flags from java_common.mk to aapt_flags.mk
This commit is contained in:
commit
34af6a41ff
|
@ -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 :=
|
||||
|
|
|
@ -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)
|
|
@ -126,7 +126,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:=
|
||||
|
|
|
@ -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
|
||||
|
@ -2222,25 +2231,17 @@ $(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
|
||||
# $(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),) \
|
||||
|
@ -2260,6 +2261,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 \
|
||||
|
@ -2280,36 +2282,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 $@)
|
||||
|
@ -2318,7 +2290,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)) \
|
||||
|
|
|
@ -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) \
|
||||
|
|
|
@ -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)
|
||||
|
|
102
core/java.mk
102
core/java.mk
|
@ -108,9 +108,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 :=
|
||||
|
@ -171,7 +170,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)
|
||||
|
@ -331,34 +330,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
|
||||
|
@ -434,56 +405,16 @@ 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)
|
||||
$(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)
|
||||
$(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) \
|
||||
|
@ -514,6 +445,31 @@ $(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): 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) \
|
||||
$(java_sources_deps) \
|
||||
$(full_java_bootclasspath_libs) \
|
||||
$(full_java_system_modules_deps) \
|
||||
$(layers_file) \
|
||||
$(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))
|
||||
|
||||
javac-check : $(full_classes_compiled_jar)
|
||||
javac-check-$(LOCAL_MODULE) : $(full_classes_compiled_jar)
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
@ -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 :=
|
||||
|
@ -411,35 +411,6 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAR_MANIFEST :=
|
|||
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
|
||||
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)
|
||||
|
|
|
@ -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
|
||||
|
@ -361,12 +361,13 @@ $(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
|
||||
|
||||
resource_export_package :=
|
||||
|
||||
include $(BUILD_SYSTEM)/aapt_flags.mk
|
||||
|
||||
ifeq ($(need_compile_res),true)
|
||||
|
||||
###############################
|
||||
|
@ -465,7 +466,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
|
||||
|
||||
|
|
|
@ -128,6 +128,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
|
||||
|
@ -185,7 +187,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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue