Support LOCAL_JACK_ENABLED := javac_frontend
Allow working around Jack bugs by using javac to compile *.java
to class files, and then pass through Jack for desugaring,
proguarding, and dexing.
Also make ANDROID_COMPILE_WITH_JACK=false override LOCAL_JACK_ENABLED.
Bug: 37483961
Test: m -j checkbuild
Test: Add LOCAL_JACK_ENABLED := javac_frontend to a target
Change-Id: I2189055aac9deccc36b8eab8e949796dddadf7a1
Merged-In: I2189055aac9deccc36b8eab8e949796dddadf7a1
(cherry picked from commit b17f285169)
This commit is contained in:
24
core/java.mk
24
core/java.mk
@@ -344,7 +344,11 @@ endif
|
||||
ifndef LOCAL_CHECKED_MODULE
|
||||
ifdef full_classes_jar
|
||||
ifdef LOCAL_JACK_ENABLED
|
||||
ifeq ($(LOCAL_JACK_ENABLED),javac_frontend)
|
||||
LOCAL_CHECKED_MODULE := $(full_classes_compiled_jar)
|
||||
else
|
||||
LOCAL_CHECKED_MODULE := $(jack_check_timestamp)
|
||||
endif
|
||||
else
|
||||
ifeq ($(LOCAL_IS_STATIC_JAVA_LIBRARY),true)
|
||||
LOCAL_CHECKED_MODULE := $(full_classes_compiled_jar)
|
||||
@@ -775,6 +779,26 @@ else
|
||||
$(built_dex_intermediate): PRIVATE_JACK_COVERAGE_OPTIONS :=
|
||||
endif
|
||||
|
||||
# Compiling with javac to jar, then converting jar to dex with jack
|
||||
ifeq ($(LOCAL_JACK_ENABLED),javac_frontend)
|
||||
|
||||
# PRIVATE_EXTRA_JAR_ARGS and source files were already handled during javac
|
||||
$(built_dex_intermediate): PRIVATE_EXTRA_JAR_ARGS :=
|
||||
$(built_dex_intermediate): PRIVATE_JAVA_SOURCES :=
|
||||
$(built_dex_intermediate): PRIVATE_SOURCE_INTERMEDIATES_DIR :=
|
||||
$(built_dex_intermediate): PRIVATE_HAS_PROTO_SOURCES :=
|
||||
$(built_dex_intermediate): PRIVATE_HAS_RS_SOURCES :=
|
||||
|
||||
# Incremental compilation is not supported when mixing javac and jack
|
||||
$(built_dex_intermediate): PRIVATE_JACK_INCREMENTAL_DIR :=
|
||||
|
||||
# Pass output of javac to jack
|
||||
$(built_dex_intermediate): PRIVATE_JACK_IMPORT_JAR := $(full_classes_compiled_jar)
|
||||
$(built_dex_intermediate): $(full_classes_compiled_jar)
|
||||
else # LOCAL_JACK_ENABLED != javac_frontend
|
||||
$(built_dex_intermediate): PRIVATE_JACK_IMPORT_JAR :=
|
||||
endif # LOCAL_JACK_ENABLED != javac_frontend
|
||||
|
||||
$(built_dex_intermediate): PRIVATE_JACK_PLUGIN_PATH := $(LOCAL_JACK_PLUGIN_PATH)
|
||||
$(built_dex_intermediate): PRIVATE_JACK_PLUGIN := $(LOCAL_JACK_PLUGIN)
|
||||
$(built_dex_intermediate): $(jack_all_deps) $(LOCAL_JACK_PLUGIN_PATH) | setup-jack-server
|
||||
|
||||
Reference in New Issue
Block a user