blob: 47d1cdf6e5489b688b6a0a567e59c6f14f062843 [file] [log] [blame] [view] [edit]
Bazel Features
==============
Use this to determine the availability of a Bazel feature in your ruleset. It works under the hood by comparing the Bazel version against a known range in which the feature is available. Example usage:
```starlark
load("@bazel_features//:features.bzl", "bazel_features")
if bazel_features.toolchains.has_optional_toolchains:
# Do something
```
The [`features.bzl`](features.bzl) file contains the list of features.
### Accessing globals
References to global Starlark symbols that do not exist cause load time errors, which means that their availability in Bazel cannot be tested via a regular feature.
Instead, use `bazel_features.globals.<symbol>`, which is `<symbol>` if the symbol is available and `None` else.
See [`globals.bzl`](private/globals.bzl) for the list of symbols that can be checked for in this way.