| # Common scalar build settings. | |
| ## Overview | |
| These definitions are only for use in Bazel built-in tools. In all | |
| other cases, use flag type definitions from | |
| github.com/bazelbuild/bazel-skylib/rules/common_settings.bzl. | |
| <a name="basic-example"></a> | |
| ## Basic Example | |
| ### //tools/my_pkg/BUILD | |
| ```python | |
| load("//tools/config:common_settings.bzl", "bool_flag") | |
| bool_flag( | |
| name = "experimental_new_behavior", | |
| build_setting_default = False, | |
| ) | |
| ``` | |
| ### //tools/my_pkg/myrule.bzl | |
| ```python | |
| load("//tools/flags:flags.bzl", "BuildSettingInfo") | |
| def _myrule_impl(ctx): | |
| if ctx.attr._experimental_new_behavior[BuildSettingInfo].value: | |
| ... | |
| ... | |
| myrule = rule( | |
| implementation = _myrule_impl. | |
| attrs = { | |
| ... | |
| "_experimental_new_behavior": attr.label( | |
| default = "//tools/my_pkg:experimental_new_behavior"), | |
| }, | |
| ) | |
| ``` |