| load("@rules_java//java:java_import.bzl", "java_import") | |
| load("@rules_java//toolchains:default_java_toolchain.bzl", "default_java_toolchain") | |
| load("@rules_shell//shell:sh_binary.bzl", "sh_binary") | |
| load("@rules_shell//shell:sh_test.bzl", "sh_test") | |
| load("//tools/jdk:system.bzl", "android_system") | |
| # Java language versions | |
| # See https://bazel.build/docs/user-manual#java-language-version | |
| _SUPPORTED_JAVA_LANGUAGE_VERSIONS = [ | |
| 8, | |
| 9, | |
| 10, | |
| 11, | |
| 17, | |
| 21, | |
| ] | |
| [ | |
| config_setting( | |
| name = "java_language_version_%d" % ver, | |
| values = {"java_language_version": str(ver)}, | |
| ) | |
| for ver in _SUPPORTED_JAVA_LANGUAGE_VERSIONS | |
| ] | |
| java_language_version_select_dict = { | |
| ":java_language_version_%d" % ver: ":toolchain_android_only_%d" % ver | |
| for ver in _SUPPORTED_JAVA_LANGUAGE_VERSIONS | |
| } | { | |
| "//conditions:default": ":toolchain_android_only_11", | |
| } | |
| alias( | |
| name = "singlejar", | |
| actual = "@rules_java//toolchains:singlejar", | |
| visibility = ["//visibility:public"], | |
| ) | |
| sh_binary( | |
| name = "create_system", | |
| srcs = ["create_system.sh"], | |
| # Required on Windows to avoid "LAUNCHER ERROR: Rlocation failed", because providing it via | |
| # the "tools" parameter of ctx.actions.run() doesn't seem to be enough. | |
| data = ["//tools/android:unzip"], | |
| visibility = ["//visibility:public"], | |
| ) | |
| genrule( | |
| name = "fake_jar", | |
| testonly = 1, | |
| outs = ["fake.jar"], | |
| cmd = "set -euo pipefail\n" + | |
| "mkdir -p a/b\n" + | |
| "mkdir -p c/d\n" + | |
| "touch a/b/x.class\n" + | |
| "touch c/d/y.class\n" + | |
| "touch foobar.txt\n" + | |
| "zip -q -r $@ a c foobar.txt", | |
| ) | |
| sh_test( | |
| name = "jar_to_module_info_test", | |
| srcs = ["jar_to_module_info_test.sh"], | |
| data = [ | |
| "test_module_info_golden.txt", | |
| ":fake_jar", | |
| "//src/tools/jar_to_module_info", | |
| ], | |
| deps = [ | |
| "@rules_shell//shell/runfiles", | |
| ], | |
| ) | |
| android_system( | |
| name = "bootclasspath_android_only", | |
| bootclasspath = [ | |
| "//tools/android:android_jar", | |
| "//tools/android:desugar_java8_extra_bootclasspath", | |
| ], | |
| core_jars = [ | |
| "@androidsdk//:core-for-system-modules-jar", | |
| ], | |
| ) | |
| [ | |
| default_java_toolchain( | |
| name = "toolchain_android_only_%d" % ver, | |
| bootclasspath = [ | |
| ":bootclasspath_android_only", | |
| ], | |
| source_version = str(ver), | |
| target_version = str(ver), | |
| visibility = ["//visibility:public"], | |
| ) | |
| for ver in _SUPPORTED_JAVA_LANGUAGE_VERSIONS | |
| ] | |
| alias( | |
| name = "toolchain_android_only", | |
| actual = select(java_language_version_select_dict), | |
| visibility = ["//visibility:public"], | |
| ) | |
| alias( | |
| name = "toolchain", | |
| actual = "@rules_java//toolchains:toolchain", | |
| visibility = ["//visibility:public"], | |
| ) | |
| alias( | |
| name = "current_java_runtime", | |
| actual = "@rules_java//toolchains:current_java_runtime", | |
| visibility = ["//visibility:public"], | |
| ) | |
| alias( | |
| name = "current_java_toolchain", | |
| actual = "@rules_java//toolchains:current_java_toolchain", | |
| visibility = ["//visibility:public"], | |
| ) | |
| alias( | |
| name = "current_host_java_runtime", | |
| actual = "@rules_java//toolchains:current_host_java_runtime", | |
| visibility = ["//visibility:public"], | |
| ) | |
| java_import( | |
| name = "TestRunner", | |
| jars = ["@remote_java_tools//:Runner"], | |
| visibility = ["//visibility:public"], | |
| ) | |
| exports_files(["java_stub_template.txt"]) |