snippetrustMajor
How do I use conditional compilation with `cfg` and Cargo?
Viewed 0 times
compilationwithhowconditionalcfgandusecargo
Problem
I want to conditionally compile my source code using
after Googling for a while,
it seems that the solution is to use
http://doc.crates.io/manifest.html
I tried adding a few
in the source code and
, but it says
How can I let cargo identify the features? Do I have to add something in
Here's the version of
cfg with Cargo,after Googling for a while,
it seems that the solution is to use
cargo --features.http://doc.crates.io/manifest.html
I tried adding a few
#[cfg(feature = "foo")]in the source code and
cargo build --features foo, but it says
Package `xxx v0.0.1 (file:///C:/yyy/xxx)` does not have these features: `foo`How can I let cargo identify the features? Do I have to add something in
Cargo.toml?Here's the version of
rustc and cargo I am using:C:\>rustc --version
rustc 0.13.0-nightly (42deaa5e4 2014-12-16 17:51:23 +0000)
C:\>cargo --version
cargo 0.0.1-pre-nightly (5af754d 2014-12-18 01:50:48 +0000)Solution
You have to introduce the existing features in your
I was able to conditionally compile by doing the following:
-
In
If you want your feature to have specific dependencies check the examples in the documentation.
-
In your code, use
-
Run
Since your steps 2 & 3 seem to be fine, there must probably be a problem with your
Cargo.toml. I was able to conditionally compile by doing the following:
-
In
Cargo.toml, create a features section and introduce a certain feature name:[features]
customfeature = [] # feature has no explicit dependenciesIf you want your feature to have specific dependencies check the examples in the documentation.
-
In your code, use
#[cfg(feature="customfeature")]-
Run
cargo build --features customfeatureSince your steps 2 & 3 seem to be fine, there must probably be a problem with your
Cargo.toml.Code Snippets
[features]
customfeature = [] # feature has no explicit dependenciesContext
Stack Overflow Q#27632660, score: 74
Revisions (0)
No revisions yet.