From b4c49cba57dafdcdfb693a549c5a1dc1beb71c25 Mon Sep 17 00:00:00 2001 From: Yohann Roussel Date: Mon, 8 Sep 2014 14:45:14 +0200 Subject: Compile using Jack. This allows to compile dex targeted java sources using Jack and Jill. Default is still to compile with the legacy toolchain. Default can be switched to the new toolchain by setting environement variable: export ANDROID_COMPILE_WITH_JACK=true Toolchain can also be forced for one module by defining LOCAL_USE_JACK:=true # false in the mk portion defining the module. Jack execution environement can be controlled with: Global variable ANDROID_JACK_VM allow to change the jvm executing Jack. Global variable ANDROID_JACK_VM_ARGS allows to change default args given to the jvm. Global variable ANDROID_JACK_EXTRA_ARGS allows to define some default args to give to Jack LOCAL_JACK_VM_ARGS allows to override default args given to the jvm for the module. LOCAL_JACK_EXTRA_ARGS allows to override default args passed to Jack. Change-Id: Ib81a0fd5f86a51d1e0edbb81cc791d828a05dd29 --- core/host_dalvik_java_library.mk | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'core/host_dalvik_java_library.mk') diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk index 6583dd7..772245e 100644 --- a/core/host_dalvik_java_library.mk +++ b/core/host_dalvik_java_library.mk @@ -33,11 +33,13 @@ endif 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 +full_classes_jack := $(intermediates.COMMON)/classes.jack built_dex := $(intermediates.COMMON)/classes.dex LOCAL_INTERMEDIATE_TARGETS += \ $(full_classes_compiled_jar) \ $(full_classes_jarjar_jar) \ + $(full_classes_jack) \ $(full_classes_jar) \ $(built_dex) @@ -95,6 +97,7 @@ $(full_classes_jar): $(full_classes_jarjar_jar) | $(ACP) @echo Copying: $@ $(hide) $(ACP) -fp $< $@ +ifneq ($(strip $(LOCAL_USE_JACK)),true) $(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) $(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) $(built_dex): $(full_classes_jar) $(DX) @@ -110,4 +113,31 @@ ifneq ($(extra_jar_args),) $(add-java-resources-to-package) endif +else # LOCAL_USE_JACK +$(LOCAL_INTERMEDIATE_TARGETS): \ + PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jayces +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JACK_DEBUG_FLAGS := -g + +$(built_dex): PRIVATE_CLASSES_JACK := $(full_classes_jack) +$(built_dex): PRIVATE_JACK_FLAGS := $(LOCAL_JACK_FLAGS) +$(built_dex): $(java_sources) $(java_resource_sources) $(full_jack_lib_deps) \ + $(jar_manifest_file) $(proto_java_sources_file_stamp) $(LOCAL_MODULE_MAKEFILE) \ + $(LOCAL_MODULE_MAKEFILE) $(LOCAL_ADDITIONAL_DEPENDENCIES) $(JACK_JAR) + @echo Building with Jack: $@ + $(jack-java-to-dex) + +$(full_classes_jack): $(built_dex) + +$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) +$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources) + @echo "Host Jar: $(PRIVATE_MODULE) ($@)" + $(create-empty-package) + $(add-dex-to-package) + $(add-carried-jack-resources) +ifneq ($(extra_jar_args),) + $(add-java-resources-to-package) +endif + +endif # LOCAL_USE_JACK + USE_CORE_LIB_BOOTCLASSPATH := -- cgit v1.1