mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 19:50:14 +01:00
The runtimes and bootstrap Bazel logic was previously built around defining custom Bazel platforms constrained with `constraint_settings`. The use of platforms added significant complexity, including the need to "save" and "restore" the original platform, and other complexity stemming from changing the platform as a whole. This PR switches to use the simpler tool of build settings, and `target_settings` on the toolchain rather than platform compatibility. This remove the entire need to save and restore the platform, and also generally simplifies things. This PR also fixes some bugs in the bootstrap that were hidden by the use of platforms, such as the need to carefully manage the different inputs to the runtimes build so that generated inputs pick up the correct exec configuration -- the exec transition happened to do this "automatically", but it seems better to handle explicitly. And it cleans up an extraneous copy of `carbon_runtimes.bzl` that snuck in somehow. Assisted-by: Antigravity with Gemini --------- Co-authored-by: Dana Jansens <danakj@orodu.net>
30 lines
831 B
Python
30 lines
831 B
Python
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
load("@bazel_skylib//rules:common_settings.bzl", "bool_setting", "int_setting")
|
|
|
|
filegroup(
|
|
name = "clang_tidy_config",
|
|
srcs = [".clang-tidy"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
# `bazel run //:generate_compile_commands` to produce `compile_commands.json`.
|
|
alias(
|
|
name = "generate_compile_commands",
|
|
actual = "@wolfd_bazel_compile_commands//:generate_compile_commands",
|
|
)
|
|
|
|
bool_setting(
|
|
name = "runtimes_build",
|
|
build_setting_default = False,
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
int_setting(
|
|
name = "bootstrap_stage",
|
|
build_setting_default = 0,
|
|
visibility = ["//visibility:public"],
|
|
)
|