| 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", |
| ) |