| commit | d81c50d0732241d07ea66e9f12982a145fb6d26d | [log] [tgz] |
|---|---|---|
| author | Googler <noreply@google.com> | Wed Feb 04 08:50:32 2026 -0800 |
| committer | Copybara-Service <copybara-worker@google.com> | Wed Feb 04 08:51:07 2026 -0800 |
| tree | d0737a2d229d16a213bc88d4bdc350f2b6c0ec43 | |
| parent | 9473f5d78133f684b553e2b88c6ed31069bd7a4d [diff] |
Add an allowlisted value of nocopts so we can forbid new usages. Could try to get a path prefix and allowlist on that; that would probably be too expensive for widely-used starlark but if we only perform that when nocopts is set it may be fine. This is not the most elegant solution, but the more elegant private API allowlist mechanisms cannot be used for this without a significant refactor (and we're stripping this out of upstream anyway). Tested: libstdcxx still builds; the targets in unknown commit do not. PiperOrigin-RevId: 865428722 Change-Id: Iec670e118bb8fc18ff1f0acf3e7ff6b389bdfd06
This repository contains a Starlark implementation of C++ rules in Bazel.
The rules are being incrementally converted from their native implementations in the Bazel source tree.
For the list of C++ rules, see the Bazel documentation.
Add the following to your WORKSPACE file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_cc", urls = ["https://github.com/bazelbuild/rules_cc/archive/refs/tags/<VERSION>.tar.gz"], sha256 = "...", )
Then, in your BUILD files, import and use the rules:
load("@rules_cc//cc:defs.bzl", "cc_library") cc_library( ... )
This repo contains an auto-detecting toolchain that expects to find tools installed on your host machine. This is non-hermetic, and may have varying behaviors depending on the versions of tools found.
There are third-party contributed hermetic toolchains you may want to investigate:
If you'd like to use the cc toolchain defined in this repo, add this to your WORKSPACE after you include rules_cc:
load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolchains") rules_cc_dependencies() rules_cc_toolchains()
This repository also contains migration tools that can be used to migrate your project for Bazel incompatible changes.
Script that migrates legacy crosstool fields into features (incompatible flag, tracking issue).
TLDR:
bazel run @rules_cc//tools/migration:legacy_fields_migrator -- \ --input=my_toolchain/CROSSTOOL \ --inline
Bazel and rules_cc are the work of many contributors. We appreciate your help!
To contribute, please read the contribution guidelines: CONTRIBUTING.md.
Note that the rules_cc use the GitHub issue tracker for bug reports and feature requests only. For asking questions see:
rules_cc mailing list#cc on slack.bazel.build