commit | 1ad8898fd629d9d13d3aa24d4ac043df30ff0e99 | [log] [tgz] |
---|---|---|
author | Keith Smiley <keithbsmiley@gmail.com> | Fri Jan 31 09:12:25 2025 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Jan 31 09:13:01 2025 -0800 |
tree | ee83d2d8e3cf5eac566308fd651d6779de07ce99 | |
parent | 5027d4a64d9bf6b1de629035f1cac448eb64bc56 [diff] |
Make output_file variable optional Copybara Import from https://github.com/bazelbuild/rules_cc/pull/339 BEGIN_PUBLIC Make output_file variable optional (#339) There are use cases where callers attempt to get the command line flags for something without having an output file, which makes any feature that relies on this fail. For example: https://github.com/bazel-contrib/rules_foreign_cc/blob/2dd6fe2aee33bf1a931ac18e5090c5476a229a02/foreign_cc/private/cc_toolchain_util.bzl#L250-L254 Currently this is unused directly but will be used in later changes and must be optional to work correctly for this case. Closes #339 END_PUBLIC COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/339 from keith:ks/make-output_file-variable-optional 86ac5093e128f3f591ea42acae9f4a57bf0bd060 PiperOrigin-RevId: 721795506 Change-Id: I48f2580052d4f32f0c2c109a1e91758e934f1206
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.
There is no need to use rules from this repository just yet. If you want to use rules_cc
anyway, 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