Configuration modifiers
Modifiers (also referred to as configuration modifiers) are a feature that lets
users add constraints to individual
directories, target definitions and individual buck2
invocations. They are the
recommended to customize build configuration.
(Open-Source Only) Getting started with modifiers
To add support for modifiers in your project, simply call set_cfg_constructor
in your root PACKAGE
file. Note this is not needed internally as modifiers are
already enabled with all the right paramaters.
See the dedicated how-to for more information.
Per-PACKAGE
modifiers
Modifiers can be specified in PACKAGE
files. A per-PACKAGE modifier all
targets in the directory of that PACKAGE file. For example, a modifier specified
in foo/PACKAGE
will cover all targets in foo/...
and all targets in
foo/bar/...
.
See the dedicated how-to for more information.
Per-target modifiers
Modifiers can be added to individual targets. See the dedicated how-to for more information.
CLI modifiers
Modifiers can be specified on the CLI to build a target with a specific constraint. For example, this can be used to build a target with a non-default compiler, or to run a test using a specific sanitizer.
See the dedicated how-to for more information.
More information
Official documentation on modifiers is sparse at the moment, so you might be interested in reading the original RFC for more details.