Add Turbine as part of java build toolchain in Make.
1. Bundle static_java_header_libs during turbine-classes.jar if necessary. This can be improved if we have the ability to merge jars on the fly. 2. Copy sdk/stubs-classes.jar to sdk/stubs-classes-header.jar, and Use .KATI_RESTAT to cut un-necessary targets rebuilt. 3. Copy prebuilt-classes.jar to prebuilt-classes-header.jar since Turbine doesn't apply to prebuilt. 4. Run jarjar after Turbine compilation, otherwise downstream targets won't find corresponding symbols. 5. Change classes.jar in -classpath used in Desugar to classes-header.jar. 6. Change legacy-libs in Proguard from classes.jar to classes-header.jar. 7. Add .KATI_RESTAT for turbine-classes.jar, and remove IJAR. 8.boot.art is re-generated during the incremental rebuild since javalib.jar got re-generated. Then boot.art re-triggered lots of downstream targets to be rebuilt. So we add .KATI_RESTAT for javalib.jar to prevent downstream to be rebuilt. The ziptime & commit-change-to-toc operation for javalib.jar(small) didn't bring too much overhead when we build from clean state. Next step: specify static_java_header_libs in -classpath, and merge jars at the end. touch frameworks/base/core/java/com/google/android/util/Procedure.java && time m time: 1m58s (794 -> 49 targets) m clean && time m java time: 9m34s Bug: b/64308460 Test: m clean && m checkbuild Change-Id: Iefcc234405b9f461b6882c06bba15e21fa783d28
This commit is contained in:
@@ -35,6 +35,7 @@ full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar
|
||||
full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar
|
||||
full_classes_jar := $(intermediates.COMMON)/classes.jar
|
||||
java_source_list_file := $(intermediates.COMMON)/java-source-list
|
||||
full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
|
||||
|
||||
LOCAL_INTERMEDIATE_TARGETS += \
|
||||
$(full_classes_compiled_jar) \
|
||||
@@ -71,7 +72,7 @@ $(java_source_list_file): $(java_sources_deps)
|
||||
$(write-java-source-list)
|
||||
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(GLOBAL_JAVAC_DEBUG_FLAGS) $(LOCAL_JAVACFLAGS) $(annotation_processor_flags)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS) $(annotation_processor_flags)
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_FILES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_PACKAGES :=
|
||||
$(full_classes_compiled_jar): PRIVATE_JAR_EXCLUDE_PACKAGES :=
|
||||
@@ -83,6 +84,7 @@ $(full_classes_compiled_jar): \
|
||||
$(annotation_processor_deps) \
|
||||
$(NORMALIZE_PATH) \
|
||||
$(ZIPTIME) \
|
||||
$(JAR_ARGS) \
|
||||
| $(SOONG_JAVAC_WRAPPER)
|
||||
$(transform-host-java-to-package)
|
||||
$(remove-timestamps-from-package)
|
||||
@@ -110,3 +112,4 @@ include $(BUILD_SYSTEM)/jacoco.mk
|
||||
$(eval $(call copy-one-file,$(LOCAL_FULL_CLASSES_JACOCO_JAR),$(LOCAL_BUILT_MODULE)))
|
||||
$(eval $(call copy-one-file,$(LOCAL_FULL_CLASSES_JACOCO_JAR),$(full_classes_jar)))
|
||||
|
||||
$(eval $(call copy-one-file,$(LOCAL_FULL_CLASSES_JACOCO_JAR),$(full_classes_header_jar)))
|
||||
|
Reference in New Issue
Block a user