blob: 22d5de007db146299c2d263c517829e7054b63cb [file] [log] [blame] [edit]
load("@platforms//host:constraints.bzl", "HOST_CONSTRAINTS")
load(
"//tools:build_defs.bzl",
"IS_HOST_WINDOWS",
"current_launcher_binary",
"single_binary_toolchain",
)
package(default_visibility = ["//visibility:public"])
# WARNING: These targets and toolchain types only exist for the purposes of
# rulesets formerly included in Bazel itself and may change or be removed at any
# time.
current_launcher_binary(name = "launcher")
# DEPRECATED: Use the `:launcher_maker_toolchain_type` toolchain instead to
# avoid an unnecessary dependency on a C++ toolchain when building for a
# non-Windows platform.
filegroup(
name = "launcher_maker",
srcs = select({
":is_host": ["launcher_maker.exe" if IS_HOST_WINDOWS else "//src/tools/launcher:launcher_maker"],
"//conditions:default": ["//src/tools/launcher:launcher_maker"],
}),
)
config_setting(
name = "is_host",
constraint_values = HOST_CONSTRAINTS,
visibility = ["//visibility:private"],
)
toolchain_type(name = "launcher_toolchain_type")
toolchain_type(name = "launcher_maker_toolchain_type")
# Toolchains are prefixed with a number to ensure that their order of definition
# matches their precedence in the toolchain resolution process when registered
# with a wildcard pattern (which sorts by name).
# TODO(#19587): Make all prebuilt binaries available in external repos and add
# toolchains for them below so that cross-platform builds can use them without
# needing to build from source.
IS_HOST_WINDOWS and single_binary_toolchain(
name = "1_prebuilt_launcher",
binary = "launcher.exe",
target_compatible_with = HOST_CONSTRAINTS,
toolchain_type = ":launcher_toolchain_type",
)
single_binary_toolchain(
name = "2_source_launcher_toolchain",
binary = "//src/tools/launcher",
target_compatible_with = ["@platforms//os:windows"],
toolchain_type = ":launcher_toolchain_type",
)
single_binary_toolchain(
name = "3_no_launcher_toolchain",
binary = "empty.sh",
toolchain_type = ":launcher_toolchain_type",
)
IS_HOST_WINDOWS and single_binary_toolchain(
name = "1_prebuilt_launcher_maker",
binary = "launcher_maker.exe",
exec_compatible_with = HOST_CONSTRAINTS,
target_compatible_with = ["@platforms//os:windows"],
toolchain_type = ":launcher_maker_toolchain_type",
)
single_binary_toolchain(
name = "2_source_launcher_maker_toolchain",
binary = "//src/tools/launcher:launcher_maker",
target_compatible_with = ["@platforms//os:windows"],
toolchain_type = ":launcher_maker_toolchain_type",
)
single_binary_toolchain(
name = "3_no_launcher_maker_toolchain",
binary = "empty.sh",
toolchain_type = ":launcher_maker_toolchain_type",
)