blob: aae0afde7e2cc7ef3c3e81252d25a5d436db60c9 [file]
"""Fake java toolchains for testing"""
load("//java/common:java_semantics.bzl", "semantics")
load("//java/toolchains:java_runtime.bzl", _java_runtime_rule = "java_runtime")
load("//java/toolchains:java_toolchain.bzl", "java_toolchain")
# buildifier: disable=function-docstring
def mock_java_toolchain(
*,
name,
singlejar = "singlejar",
javabuilder = "JavaBuilder_deploy.jar",
header_compiler = "turbine_canary_deploy.jar",
header_compiler_direct = "turbine_direct",
ijar = "ijar",
genclass = "genclass",
java_runtime = None,
oneversion = None,
oneversion_allowlist = None,
oneversion_allowlist_for_tests = None,
tags = None, # for util.helper_target
**kwargs):
if not java_runtime:
java_runtime = name + "_runtime"
_java_runtime_rule(name = java_runtime)
one_version_args = {
"oneversion": oneversion,
"oneversion_allowlist": oneversion_allowlist,
"oneversion_allowlist_for_tests": oneversion_allowlist_for_tests,
} if semantics.java_toolchain_supports_one_version else {}
java_toolchain(
name = name + "_java",
javabuilder = javabuilder,
singlejar = singlejar,
header_compiler = header_compiler,
header_compiler_direct = header_compiler_direct,
ijar = ijar,
java_runtime = java_runtime,
genclass = genclass,
tags = tags,
**(kwargs | one_version_args)
)
native.toolchain(
name = name,
toolchain = name + "_java",
toolchain_type = semantics.JAVA_TOOLCHAIN_TYPE,
tags = tags,
)
# buildifier: disable=function-docstring
def mock_java_runtime_toolchain(
*,
name,
srcs = [],
java_home = None,
java = None,
version = None,
**kwargs):
_java_runtime_rule(
name = name + "_runtime",
srcs = srcs,
java_home = java_home,
java = java,
version = version,
**kwargs
)
native.toolchain(
name = name,
toolchain = name + "_runtime",
toolchain_type = semantics.JAVA_RUNTIME_TOOLCHAIN_TYPE,
**kwargs
)