cfg_feature_groups 0.1.1

Build helper for defining feature groups
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented0 out of 1 items with examples
  • Size
  • Source code size: 9.87 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.26 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 23s Average build duration of successful builds.
  • all releases: 23s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • little-arhat/cfg-feature-groups
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • little-arhat

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.