use std::env; fn main() { println!("cargo:rerun-if-changed=build.rs"); println!("cargo:rerun-if-env-changed=CARGO_CFG_MIRI"); if env::var_os("CARGO_CFG_MIRI").is_some() { // Miri doesn't need the linker flags or a libunwind build. return; } let target = env::var("TARGET").expect("TARGET was not set"); if target.contains("android") { let build = cc::Build::new(); // Since ndk r23 beta 3 `libgcc` was replaced with `libunwind` thus // check if we have `libunwind` available and if so use it. Otherwise // fall back to `libgcc` to support older ndk versions. let has_unwind = build.is_flag_supported("-lunwind").expect("Unable to invoke compiler"); if has_unwind { println!("cargo:rustc-cfg=feature=\"system-llvm-libunwind\""); } } }