44 lines
1.4 KiB
Rust
44 lines
1.4 KiB
Rust
use std::env;
|
|
use std::ffi::OsString;
|
|
use std::process::Command;
|
|
|
|
fn main() {
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
|
|
let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc"));
|
|
|
|
let output = Command::new(rustc)
|
|
.arg("--version")
|
|
.output()
|
|
.expect("failed to run `rustc --version`");
|
|
|
|
if String::from_utf8_lossy(&output.stdout).contains("nightly") {
|
|
println!("cargo:rustc-cfg=nightly");
|
|
}
|
|
|
|
let target = env::var("TARGET").unwrap();
|
|
|
|
if target.starts_with("thumbv6m-") {
|
|
println!("cargo:rustc-cfg=cortex_m");
|
|
println!("cargo:rustc-cfg=armv6m");
|
|
} else if target.starts_with("thumbv7m-") {
|
|
println!("cargo:rustc-cfg=cortex_m");
|
|
println!("cargo:rustc-cfg=armv7m");
|
|
} else if target.starts_with("thumbv7em-") {
|
|
println!("cargo:rustc-cfg=cortex_m");
|
|
println!("cargo:rustc-cfg=armv7m");
|
|
println!("cargo:rustc-cfg=armv7em"); // (not currently used)
|
|
} else if target.starts_with("thumbv8m.base") {
|
|
println!("cargo:rustc-cfg=cortex_m");
|
|
println!("cargo:rustc-cfg=armv8m");
|
|
println!("cargo:rustc-cfg=armv8m_base");
|
|
} else if target.starts_with("thumbv8m.main") {
|
|
println!("cargo:rustc-cfg=cortex_m");
|
|
println!("cargo:rustc-cfg=armv8m");
|
|
println!("cargo:rustc-cfg=armv8m_main");
|
|
}
|
|
|
|
if target.ends_with("-eabihf") {
|
|
println!("cargo:rustc-cfg=has_fpu");
|
|
}
|
|
}
|