Talk to Cargo easily at build time, brought to you by Nikolai Vazquez.
This library provides:
-
Convenience macros for communicating with Cargo during the
build.rs
phrase. Cargo listens to certain build script outputs that dictate how it should behave. -
An accessible location for seeing what script build outputs are available to emit.
-
Protection against typos that can be made when printing these formatted outputs directly yourself. Mistyping macro names will result in a compile failure.
Usage
This crate exposes the following macros:
Macro | Output |
---|---|
pair!($key, $value) |
cargo:$key=$value |
rerun_if_changed!($path) |
cargo:rerun-if-changed=$path |
rerun_if_env_changed!($key) |
cargo:rerun-if-env-changed=$key |
rustc_cdylib_link_arg!($flag) |
cargo:rustc-cdylib-link-arg=$flag |
rustc_cfg!($feature) |
cargo:rustc-cfg=$feature |
rustc_env!($key, $value) |
cargo:rustc-env=$key=$value |
rustc_flags!($flags) |
cargo:rustc-flags=$flags |
rustc_link_arg!($arg) |
cargo:rustc-link-arg=$arg |
rustc_link_arg_bin!($bin => $arg) |
cargo:rustc-link-arg-bin=$bin=$arg |
rustc_link_arg_bins!($arg) |
cargo:rustc-link-arg-bins=$arg |
rustc_link_lib!($name => $kind) |
cargo:rustc-link-lib=$kind=$name |
rustc_link_search!($path => $kind) |
cargo:rustc-link-search=$kind=$path |
warning!($message) |
cargo:warning=$message |
License
This project is released under either: