system-deps
lets you write system dependencies in Cargo.toml
metadata,
rather than programmatically in build.rs
. This makes those dependencies
declarative, so other tools can read them as well.
For now only pkg-config
dependencies are supported, but we are planning to
expand it at some point.
Users can override dependency flags using environment variables if needed.
system-deps
also allows -sys
crates to optionally internally build and
static link the required system library.
system-deps
has been started as a fork of the
metadeps project.
See the crate documentation.
In your Cargo.toml
:
[build-dependencies]
system-deps = "2.0"
Then, to declare a dependency on testlib >= 1.2
add the following section:
[package.metadata.system-deps]
testlib = "1.2"
Finally, in your build.rs
, add:
fn main() {
system_deps::Config::new().probe().unwrap();
}
See the crate documentation for more advanced features.