mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 22:02:23 +01:00
The goal here is to be able to construct a build of the runtimes directly in Bazel, or by emitting `BUILD` files, or by emitting into C++ code and using that on-demand. For that, we want a single source of truth, and that source in Starlark. This should also make the information more generally useful, and so I'm moving as much as I can into the LLVM Bazel build. Apologies as that makes the diffs extra annoying. I do plan on upstreaming the Bazel parts of this, but would like to get everything working in Carbon and stabilized first. While here, I've also made a change suggested for the future in the initial review by lifting the C++ template out of a string literal in the `.bzl` file, and into an actual separate C++ file. This only moves libc++, libc++abi, and libunwind. I want to get those three working end-to-end before I work on the builtins or `crtbegin` and `crtend`, as those have a bunch of additional complexity. This also only uses the info in the C++ on-demand build. It seemed like a reasonable increment to start code review, and my plan is to work on other build strategies in a follow-up PR. If that doesn't work, let me know and I'll come back once I have at least a second use of the info here.