use std::env;
fn main() {
println!("cargo:rerun-if-env-changed=RUSTFLAGS");
println!("cargo:rerun-if-env-changed=CARGO_ENCODED_RUSTFLAGS");
let backtraces_on = env::var_os("CARGO_FEATURE_BACKTRACES").is_some();
if !backtraces_on {
return;
}
let rustflags = env::var("CARGO_ENCODED_RUSTFLAGS")
.or_else(|_| env::var("RUSTFLAGS"))
.unwrap_or_default();
let has_fp = rustflags.contains("force-frame-pointers=yes")
|| rustflags.contains("force-frame-pointers=y")
|| rustflags.contains("force-frame-pointers=on");
if !has_fp {
println!(
"cargo:warning=mod-alloc: the `backtraces` feature is enabled but \
RUSTFLAGS does not include `-C force-frame-pointers=yes`. The inline \
FP walker requires frame pointers; without them traces will be empty \
or shallow on release builds. Add to .cargo/config.toml: [build] \
rustflags = [\"-C\", \"force-frame-pointers=yes\"]"
);
}
}