| load("@bazel_tools//tools/jdk:default_java_toolchain.bzl", "BASE_JDK9_JVM_OPTS", "default_java_toolchain") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| java_runtime( |
| name = "jdk17_runtime", |
| srcs = select({ |
| "@platforms//os:macos": glob(["mac/**"]), |
| "@platforms//os:windows": glob(["win/**"]), |
| "@platforms//os:linux": glob(["linux/**"]), |
| }), |
| java_home = select({ |
| "@platforms//os:macos": "mac/Contents/Home", |
| "@platforms//os:windows": "win", |
| "@platforms//os:linux": "linux", |
| }), |
| ) |
| |
| # use jdk17 toolchain when '--java_runtime_version=jdk17' flag is provided |
| config_setting( |
| name = "jdk17_name_setting", |
| values = {"java_runtime_version": "jdk17"}, |
| visibility = ["//visibility:private"], |
| ) |
| |
| toolchain( |
| name = "java_runtime_toolchain", |
| target_settings = [":jdk17_name_setting"], |
| toolchain = ":jdk17_runtime", |
| toolchain_type = "@bazel_tools//tools/jdk:runtime_toolchain_type", |
| ) |
| |
| # import minimal options from default_java_toolchain.bzl to avoid --patch-module arguments |
| # custom javac build hasn't been necessary since JDK 13, and it fails with JDK17 |
| # https://github.com/bazelbuild/bazel/issues/14474#issuecomment-1001071398 |
| JDK17_JVM_OPTS = BASE_JDK9_JVM_OPTS + [ |
| "--add-opens=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED", # for buildjar.ReducedClasspathJavaLibraryBuilder |
| ] |
| |
| # Commands usefull for for debugging java toolchain issues |
| # bazel build --verbose_failures --subcommands=pretty_print --toolchain_resolution_debug=java /... |
| # bazel query //prebuilts/studio/jdk/jdk17:java17_compile_toolchain --output=build |
| |
| default_java_toolchain( |
| name = "java17_compile_toolchain", |
| java_runtime = ":jdk17_runtime", |
| jvm_opts = JDK17_JVM_OPTS, |
| source_version = "17", |
| target_version = "17", |
| ) |
| |
| filegroup( |
| name = "jdk17_runtime_files", |
| srcs = ["BUILD"] + select({ |
| "@platforms//os:macos": glob(["mac/**"]), |
| "@platforms//os:windows": glob(["win/**"]), |
| "@platforms//os:linux": glob(["linux/**"]), |
| }), |
| ) |
| |
| filegroup( |
| name = "jdk17_runtime_linux_files", |
| srcs = glob(["linux/**"]), |
| visibility = ["//visibility:public"], |
| ) |