blob: 04810660376f96d356be0008b662096069437e9e [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.