aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md81
1 files changed, 81 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2cc1973
--- /dev/null
+++ b/README.md
@@ -0,0 +1,81 @@
+# C++ rules for Bazel
+
+* Postsubmit [![Build status](https://badge.buildkite.com/f03592ae2d7d25a2abc2a2ba776e704823fa17fd3e061f5103.svg?branch=main)](https://buildkite.com/bazel/rules-cc)
+* Postsubmit + Current Bazel Incompatible flags [![Build status](https://badge.buildkite.com/5ba709cc33e5855078a1f8570adcf8e0a78ea93591bc0b4e81.svg?branch=master)](https://buildkite.com/bazel/rules-cc-plus-bazelisk-migrate)
+
+This repository contains Starlark implementation of C++ rules in Bazel.
+
+The rules are being incrementally converted from their native implementations in the [Bazel source tree](https://source.bazel.build/bazel/+/master:src/main/java/com/google/devtools/build/lib/rules/cpp/).
+
+For the list of C++ rules, see the Bazel
+[documentation](https://docs.bazel.build/versions/main/be/overview.html).
+
+# Getting Started
+
+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:
+
+```starlark
+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:
+
+```starlark
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+cc_library(
+ ...
+)
+```
+
+# Using the rules_cc toolchain
+
+If you'd like to use the cc toolchain defined in this repo add this to
+your WORKSPACE after you include rules_cc:
+
+```bzl
+load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolchains")
+
+rules_cc_dependencies()
+
+rules_cc_toolchains()
+```
+
+# Migration Tools
+
+This repository also contains migration tools that can be used to migrate your
+project for Bazel incompatible changes.
+
+## Legacy fields migrator
+
+Script that migrates legacy crosstool fields into features
+([incompatible flag](https://github.com/bazelbuild/bazel/issues/6861),
+[tracking issue](https://github.com/bazelbuild/bazel/issues/5883)).
+
+TLDR:
+
+```
+bazel run @rules_cc//tools/migration:legacy_fields_migrator -- \
+ --input=my_toolchain/CROSSTOOL \
+ --inline
+```
+
+# Contributing
+
+Bazel and `rules_cc` are the work of many contributors. We appreciate your help!
+
+To contribute, please read the contribution guidelines: [CONTRIBUTING.md](https://github.com/bazelbuild/rules_cc/blob/main/CONTRIBUTING.md).
+
+Note that the `rules_cc` use the GitHub issue tracker for bug reports and feature requests only.
+For asking questions see:
+
+* [Stack Overflow](https://stackoverflow.com/questions/tagged/bazel)
+* [`rules_cc` mailing list](https://groups.google.com/forum/#!forum/cc-bazel-discuss)
+* Slack channel `#cc` on [slack.bazel.build](https://slack.bazel.build)