Expand description
cfg_feature_groups: define feature groups to improve conditional compilation management.
This library allows one to define feature group, that may only take one
value out of set. Feature groups defined in Cargo.toml
as metadata:
[package.metadata.feature_groups]
log = ["dummy", "semihosting", "itm"]
Where "dummy", "semihosting", "itm"
are features defined separately.
Once feature groups are defined, they can be checked during build time
and turned into cfg attributes:
[build-dependencies]
cfg_feature_groups = "..."
use cfg_feature_groups::setup_feature_groups;
fn main() {
setup_feature_groups();
}
Then in your program you may use something like this:
#[cfg(log = "itm")]
fn define_itm() {}
setup_feature_groups
will ensure that one and only one option is defined
for each feature group.
See full example in example
dir.
Functionsยง
- Reads feature_groups from Cargo metadata and process supplied features. Checks that for every feature group only one option is provided. Feature groups are turned into
cfg
attributes with supplied value.