2019-05-02 11:37:21 -07:00
|
|
|
use std::env;
|
|
|
|
|
|
2024-10-26 00:44:50 -05:00
|
|
|
mod configure;
|
|
|
|
|
|
2019-05-02 10:48:55 -07:00
|
|
|
fn main() {
|
2024-10-26 00:44:50 -05:00
|
|
|
let cfg = configure::Config::from_env();
|
|
|
|
|
|
2019-05-02 10:48:55 -07:00
|
|
|
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();
|
2025-01-11 22:30:30 +00:00
|
|
|
if lvl != "0" && !cfg!(debug_assertions) {
|
2019-05-02 11:37:21 -07:00
|
|
|
println!("cargo:rustc-cfg=assert_no_panic");
|
2025-01-11 22:30:30 +00:00
|
|
|
} else if env::var("ENSURE_NO_PANIC").is_ok() {
|
|
|
|
|
// Give us a defensive way of ensureing that no-panic is checked when we
|
|
|
|
|
// expect it to be.
|
|
|
|
|
panic!("`assert_no_panic `was not enabled");
|
2019-05-02 11:37:21 -07:00
|
|
|
}
|
|
|
|
|
}
|
2024-10-28 18:15:19 -05:00
|
|
|
|
2024-10-26 00:44:50 -05:00
|
|
|
configure::emit_libm_config(&cfg);
|
2024-10-28 20:24:46 -05:00
|
|
|
}
|