From: Neil Fuller Date: Wed, 2 Mar 2016 11:19:41 +0000 (+0000) Subject: Add JarJar support to BUILD_HOST_JAVA_LIBRARY X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=432bdaa2f72c4a238833c03f3e9de01307ccff39;p=android-x86%2Fbuild.git Add JarJar support to BUILD_HOST_JAVA_LIBRARY This will allow us to convert icu4j-icudata / icu4j-icutzdata targets to "host" targets rather than "target" targets. Right now they are forcing Jack off just so they can use javac + jarjar (even though the resulting file is used on host). Bug: 27218410 (cherry picked from commit 30b21ad579fab9669ec00845bfa092e4318eed10) Change-Id: I4f16896606bcfdd00164078eeb142d05b29bb832 --- diff --git a/core/host_java_library.mk b/core/host_java_library.mk index 052c571b1..97079fd37 100644 --- a/core/host_java_library.mk +++ b/core/host_java_library.mk @@ -30,13 +30,15 @@ endif endif full_classes_compiled_jar := $(intermediates.COMMON)/classes-full-debug.jar +full_classes_jarjar_jar := $(intermediates.COMMON)/classes-jarjar.jar emma_intermediates_dir := $(intermediates.COMMON)/emma_out # emma is hardcoded to use the leaf name of its input for the output file -- # only the output directory can be changed -full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(notdir $(full_classes_compiled_jar)) +full_classes_emma_jar := $(emma_intermediates_dir)/lib/$(notdir $(full_classes_jarjar_jar)) LOCAL_INTERMEDIATE_TARGETS += \ $(full_classes_compiled_jar) \ + $(full_classes_jarjar_jar) \ $(full_classes_emma_jar) ####################################### @@ -49,6 +51,37 @@ all_java_sources := $(java_sources) include $(BUILD_SYSTEM)/java_common.mk +# The layers file allows you to enforce a layering between java packages. +# Run build/tools/java-layers.py for more details. +layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE)) + +$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file) +$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(GLOBAL_JAVAC_DEBUG_FLAGS) $(LOCAL_JAVACFLAGS) +$(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): \ + $(java_sources) \ + $(java_resource_sources) \ + $(full_java_lib_deps) \ + $(jar_manifest_file) \ + $(proto_java_sources_file_stamp) \ + $(LOCAL_MODULE_MAKEFILE_DEP) \ + $(LOCAL_ADDITIONAL_DEPENDENCIES) + $(transform-host-java-to-package) + +# Run jarjar if necessary, otherwise just copy the file. +ifneq ($(strip $(LOCAL_JARJAR_RULES)),) +$(full_classes_jarjar_jar): PRIVATE_JARJAR_RULES := $(LOCAL_JARJAR_RULES) +$(full_classes_jarjar_jar): $(full_classes_compiled_jar) $(LOCAL_JARJAR_RULES) | $(JARJAR) + @echo JarJar: $@ + $(hide) java -jar $(JARJAR) process $(PRIVATE_JARJAR_RULES) $< $@ +else +$(full_classes_jarjar_jar): $(full_classes_compiled_jar) | $(ACP) + @echo Copying: $@ + $(hide) $(ACP) -fp $< $@ +endif + ifeq (true,$(LOCAL_EMMA_INSTRUMENT)) $(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILE := $(intermediates.COMMON)/coverage.em $(full_classes_emma_jar): PRIVATE_EMMA_INTERMEDIATES_DIR := $(emma_intermediates_dir) @@ -61,7 +94,7 @@ $(full_classes_emma_jar): PRIVATE_EMMA_COVERAGE_FILTER := *,-emma,-emmarun,-com. endif # this rule will generate both $(PRIVATE_EMMA_COVERAGE_FILE) and # $(full_classes_emma_jar) -$(full_classes_emma_jar) : $(full_classes_compiled_jar) | $(EMMA_JAR) +$(full_classes_emma_jar) : $(full_classes_jarjar_jar) | $(EMMA_JAR) $(transform-classes.jar-to-emma) $(built_javalib_jar) : $(full_classes_emma_jar) @@ -69,25 +102,8 @@ $(built_javalib_jar) : $(full_classes_emma_jar) $(hide) $(ACP) -fp $< $@ else # LOCAL_EMMA_INSTRUMENT -# Directly build into $(built_javalib_jar). -full_classes_compiled_jar := $(built_javalib_jar) +$(built_javalib_jar): $(full_classes_jarjar_jar) | $(ACP) + @echo Copying: $@ + $(hide) $(ACP) -fp $< $@ endif # LOCAL_EMMA_INSTRUMENT -# The layers file allows you to enforce a layering between java packages. -# Run build/tools/java-layers.py for more details. -layers_file := $(addprefix $(LOCAL_PATH)/, $(LOCAL_JAVA_LAYERS_FILE)) - -$(full_classes_compiled_jar): PRIVATE_JAVA_LAYERS_FILE := $(layers_file) -$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(GLOBAL_JAVAC_DEBUG_FLAGS) $(LOCAL_JAVACFLAGS) -$(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): \ - $(java_sources) \ - $(java_resource_sources) \ - $(full_java_lib_deps) \ - $(jar_manifest_file) \ - $(proto_java_sources_file_stamp) \ - $(LOCAL_MODULE_MAKEFILE_DEP) \ - $(LOCAL_ADDITIONAL_DEPENDENCIES) - $(transform-host-java-to-package)