#build #compilation #cfg #build-rs

cfg_feature_groups

Build helper for defining feature groups

2 releases

✓ Uses Rust 2018 edition

0.1.1 Apr 6, 2019
0.1.0 Apr 6, 2019

#5 in #compilation

21 downloads per month

MIT license

5KB
75 lines


lib.rs:

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.

Dependencies

~544KB
~12K SLoC