Expand description
Tiny library for setting/getting build-time values for your crate.
§Setup
§Create build.rs
Create new file build.rs at the top level of your crate (next to Cargo.toml).
use chksum_build::{BuildScript, Result};
fn main() -> Result<()> {
BuildScript::default().setup()
}Optionally you can use along with anyhow.
use anyhow::Result;
use chksum_build::{setup, BuildScript};
fn main() -> Result<()> {
setup(&BuildScript::default())
}§Update Cargo.toml
§Modify package section
[package]
# ...
build = "build.rs"§Modify build-dependencies section
You can update Cargo.toml on your own.
[build-dependencies]
# ...
chksum-build = "0.0.3"Or use cargo add subcommand.
cargo add --build chksum-build§Modify dependencies section
As in the example above you can add entry manually.
[dependencies]
# ...
chksum-build = "0.0.3"Or by using subcommand.
cargo add chksum-build§Usage
§build_info macro
build_info macro creates BuildInfo.
ⓘ
use chksum_build::build_info;
let build_info = build_info!();§env or option_env macros
env or option_env macros.
Notice: Type conversion need to be done manually.
ⓘ
use std::str::FromStr;
use chksum_build::cargo::Profile;
// ...
let profile = env!("CHKSUM_BUILD_INFO_CARGO_PROFILE");
let profile = Profile::from_str(profile)?;
// or
let profile = option_env!("CHKSUM_BUILD_INFO_CARGO_PROFILE")
.map(Profile::from_str)
.transpose()?;§cfg or cfg_attr options
Some variables are available as configuration options for cfg or cfg_attr.
§Profile variants
Check Profile for more details.
#[cfg(debug)]
fn debug_function() {
// ...
}
#[cfg_attr(release, inline)]
fn inline_when_release_function() {
// ...
}§Channel variants
Check Channel for more details.
#[cfg(stable)]
fn stable_function() {
// ...
}
#[cfg(nightly)]
fn nightly_function() {
// ...
}
#[cfg_attr(nightly, optimize(size))]
fn optimize_when_nightly_function() {
// ...
}§Feature flags
info: Enables items required by library or application.script: Enables items required by build script.
By default both of them are enabled.
§Alternatives
§License
MIT
Macros§
- build_
info - Creates a
BuildInfofrom environment variables.
Structs§
- Build
info - Contains informations about build.
- Build
Info info - Contains values set by build script.
- Build
Script script - Configuration for build script.
- Cargo
info - Contains informations about Cargo.
- Rust
info - Contains informations about Rust.
Enums§
- Channel
- A rustup channel.
- Channel
Version - A rustup channel’s version.
- Error
- A common error type for the current crate.
- Profile
- A Cargo profile.
Functions§
- setup
script - Wraps
BuildScript::setupto returnanyhow::Resultinstead ofResult.