Break EXPERIMENTAL_USE_OPENJDK9 into {USE,TARGET}_OPENJDK9.
This CL topic breaks the single flag value EXPERIMENTAL_USE_OPENJDK9 into two flags USE_OPENJDK9 and TARGET_OPENJDK9 which are computed independently in config.mk and config.go; this means that later build logic no longer depends on / duplicates the semantics of an unset EXPERIMENTAL_USE_OPENJDK9, because that later build logic can use USE_OPENJDK9 and TARGET_OPENJDK9 instead. Thus, it becomes slightly easier to change this default in future CLs (touching only config.mk and config.go). It also makes it more straightforward to convert .mk files to .bp. This CL also introduces a new allowed value "false" for EXPERIMENTAL_USE_OPENJDK9. This fourth possible value currently has the same semantics as a default/unset EXPERIMENTAL_USE_OPENJDK9, but allows people to explicitly switch back to the old semantics when the default changes. Test: make showcommands core-oj (in environments with EXPERIMENTAL_USE_OPENJDK9 set to "", "1.8", and "true"). Bug: 38177295 Change-Id: Iaade9610b237722e5d175143808b8653b1e98996
This commit is contained in:
parent
81eeb78200
commit
f6bd495728
5 changed files with 24 additions and 11 deletions
|
@ -665,14 +665,28 @@ ANDROID_MANIFEST_MERGER := $(JAVA) -classpath prebuilts/devtools/tools/lib/manif
|
|||
|
||||
COLUMN:= column
|
||||
|
||||
# Path to tools.jar, or empty if EXPERIMENTAL_USE_OPENJDK9 is set
|
||||
ifeq ($(EXPERIMENTAL_USE_OPENJDK9),)
|
||||
USE_OPENJDK9 :=
|
||||
TARGET_OPENJDK9 :=
|
||||
else ifeq ($(EXPERIMENTAL_USE_OPENJDK9),false)
|
||||
USE_OPENJDK9 :=
|
||||
TARGET_OPENJDK9 :=
|
||||
else ifeq ($(EXPERIMENTAL_USE_OPENJDK9),1.8)
|
||||
USE_OPENJDK9 := true
|
||||
TARGET_OPENJDK9 :=
|
||||
else ifeq ($(EXPERIMENTAL_USE_OPENJDK9),true)
|
||||
USE_OPENJDK9 := true
|
||||
TARGET_OPENJDK9 := true
|
||||
endif
|
||||
|
||||
# Path to tools.jar, or empty if USE_OPENJDK9 is unset
|
||||
HOST_JDK_TOOLS_JAR :=
|
||||
# TODO: Remove HOST_JDK_TOOLS_JAR and all references to it once OpenJDK 8
|
||||
# toolchains are no longer supported (i.e. when what is now
|
||||
# EXPERIMENTAL_USE_OPENJDK9 becomes the standard). http://b/38418220
|
||||
ifeq ($(EXPERIMENTAL_USE_OPENJDK9),)
|
||||
# toolchains are no longer supported (i.e. when USE_OPENJDK9 is enforced).
|
||||
# http://b/38418220
|
||||
ifndef USE_OPENJDK9
|
||||
HOST_JDK_TOOLS_JAR := $(ANDROID_JAVA_TOOLCHAIN)/../lib/tools.jar
|
||||
endif # ifeq ($(EXPERIMENTAL_USE_OPENJDK9),)
|
||||
endif # ifdef USE_OPENJDK9
|
||||
|
||||
# It's called md5 on Mac OS and md5sum on Linux
|
||||
ifeq ($(HOST_OS),darwin)
|
||||
|
|
|
@ -2381,7 +2381,7 @@ $(hide) rm -f $@ $@.tmp
|
|||
@rm -rf $(dir $@)/desugar_dumped_classes
|
||||
@mkdir $(dir $@)/desugar_dumped_classes
|
||||
$(hide) $(JAVA) \
|
||||
$(if $(EXPERIMENTAL_USE_OPENJDK9),--add-opens java.base/java.lang.invoke=ALL-UNNAMED,) \
|
||||
$(if $(USE_OPENJDK9),--add-opens java.base/java.lang.invoke=ALL-UNNAMED,) \
|
||||
-Djdk.internal.lambda.dumpProxyClasses=$(abspath $(dir $@))/desugar_dumped_classes \
|
||||
-jar $(DESUGAR) \
|
||||
$(addprefix --bootclasspath_entry ,$(PRIVATE_BOOTCLASSPATH)) \
|
||||
|
@ -2774,7 +2774,7 @@ endef
|
|||
###########################################################
|
||||
## Commands to call Proguard
|
||||
###########################################################
|
||||
ifeq ($(EXPERIMENTAL_USE_OPENJDK9),true)
|
||||
ifdef TARGET_OPENJDK9
|
||||
define transform-jar-to-proguard
|
||||
@echo Skipping Proguard: $<$(PRIVATE_PROGUARD_INJAR_FILTERS) $@
|
||||
$(hide) cp '$<' $@
|
||||
|
|
|
@ -213,7 +213,7 @@ else
|
|||
##
|
||||
##
|
||||
|
||||
ifneq ($(EXPERIMENTAL_USE_OPENJDK9),)
|
||||
ifdef USE_OPENJDK9
|
||||
# For OpenJDK 9 we use --patch-module to define the core libraries code.
|
||||
# TODO(tobiast): Reorganize this when adding proper support for OpenJDK 9
|
||||
# modules. Here we treat all code in core libraries as being in java.base
|
||||
|
|
|
@ -555,7 +555,7 @@ endif
|
|||
|
||||
$(eval $(call copy-one-file,$(full_classes_jarjar_jar),$(full_classes_jar)))
|
||||
|
||||
ifeq ($(EXPERIMENTAL_USE_OPENJDK9),true)
|
||||
ifdef TARGET_OPENJDK9
|
||||
LOCAL_DX_FLAGS := $(filter-out --multi-dex,$(LOCAL_DX_FLAGS)) --multi-dex
|
||||
endif
|
||||
|
||||
|
|
|
@ -23,8 +23,7 @@ ifeq (,$(LOCAL_JAVA_LANGUAGE_VERSION))
|
|||
# TODO(ccross): allow 1.9 for current and unbundled once we have SDK system modules
|
||||
LOCAL_JAVA_LANGUAGE_VERSION := 1.8
|
||||
else
|
||||
# DEFAULT_JAVA_LANGUAGE_VERSION is 1.8 unless EXPERIMENTAL_USE_OPENJDK9=true
|
||||
# in which case it is 1.9
|
||||
# DEFAULT_JAVA_LANGUAGE_VERSION is 1.8, unless TARGET_OPENJDK9 in which case it is 1.9
|
||||
LOCAL_JAVA_LANGUAGE_VERSION := $(DEFAULT_JAVA_LANGUAGE_VERSION)
|
||||
endif
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue