2019-05-02 11:37:21 -07:00
|
|
|
use std::env;
|
|
|
|
|
|
2019-05-02 10:48:55 -07:00
|
|
|
fn main() {
|
|
|
|
|
println!("cargo:rerun-if-changed=build.rs");
|
2024-10-27 22:45:37 -05:00
|
|
|
println!("cargo:rustc-check-cfg=cfg(assert_no_panic)");
|
2019-05-02 10:48:55 -07:00
|
|
|
|
2024-10-27 22:45:37 -05:00
|
|
|
println!("cargo:rustc-check-cfg=cfg(feature, values(\"checked\"))");
|
2024-10-05 13:57:10 -05:00
|
|
|
|
2024-05-06 04:16:52 -05:00
|
|
|
#[allow(unexpected_cfgs)]
|
2019-05-02 11:37:21 -07:00
|
|
|
if !cfg!(feature = "checked") {
|
|
|
|
|
let lvl = env::var("OPT_LEVEL").unwrap();
|
|
|
|
|
if lvl != "0" {
|
|
|
|
|
println!("cargo:rustc-cfg=assert_no_panic");
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-28 18:15:19 -05:00
|
|
|
|
|
|
|
|
configure_intrinsics();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Simplify the feature logic for enabling intrinsics so code only needs to use
|
|
|
|
|
/// `cfg(intrinsics_enabled)`.
|
|
|
|
|
fn configure_intrinsics() {
|
|
|
|
|
println!("cargo:rustc-check-cfg=cfg(intrinsics_enabled)");
|
|
|
|
|
|
|
|
|
|
// Disabled by default; `unstable-intrinsics` enables again; `force-soft-floats` overrides
|
|
|
|
|
// to disable.
|
|
|
|
|
if cfg!(feature = "unstable-intrinsics") && !cfg!(feature = "force-soft-floats") {
|
|
|
|
|
println!("cargo:rustc-cfg=intrinsics_enabled");
|
|
|
|
|
}
|
2019-05-02 10:48:55 -07:00
|
|
|
}
|