Update default Java language version Use `--java_language_version=''` to mean the toolchain-defined default version, instead of hard-coding a default value of the flag. PiperOrigin-RevId: 495444503 Change-Id: Ia120f37204c516df31f1f83b5e863e86d024169d
diff --git a/toolchains/default_java_toolchain.bzl b/toolchains/default_java_toolchain.bzl index 24ac125..90edad0 100644 --- a/toolchains/default_java_toolchain.bzl +++ b/toolchains/default_java_toolchain.bzl
@@ -123,6 +123,8 @@ singlejar = ["@remote_java_tools//:singlejar_cc_bin"], ) +_DEFAULT_SOURCE_VERSION = "8" + def default_java_toolchain(name, configuration = DEFAULT_TOOLCHAIN_CONFIGURATION, toolchain_definition = True, exec_compatible_with = [], target_compatible_with = [], **kwargs): """Defines a remote java_toolchain with appropriate defaults for Bazel. @@ -145,9 +147,23 @@ **toolchain_args ) if toolchain_definition: + source_version = toolchain_args["source_version"] + if source_version == _DEFAULT_SOURCE_VERSION: + native.config_setting( + name = name + "_default_version_setting", + values = {"java_language_version": ""}, + visibility = ["//visibility:private"], + ) + native.toolchain( + name = name + "_default_definition", + toolchain_type = "@bazel_tools//tools/jdk:toolchain_type", + target_settings = [name + "_default_version_setting"], + toolchain = name, + ) + native.config_setting( name = name + "_version_setting", - values = {"java_language_version": toolchain_args["source_version"]}, + values = {"java_language_version": source_version}, visibility = ["//visibility:private"], ) native.toolchain(