rtic/rtic/build.rs
2023-09-27 19:50:13 +00:00

28 lines
1.1 KiB
Rust

use std::env;
fn main() {
let target = env::var("TARGET").unwrap();
// These targets all have know support for the BASEPRI register.
if target.starts_with("thumbv7m")
| target.starts_with("thumbv7em")
| target.starts_with("thumbv8m.main")
{
println!("cargo:rustc-cfg=feature=\"cortex-m-basepri\"");
} else if target.starts_with("thumbv6m") | target.starts_with("thumbv8m.base") {
println!("cargo:rustc-cfg=feature=\"cortex-m-source-masking\"");
//this should not be this general
//riscv processors differ in interrupt implementation
//even within the same target
//need some other way to discern
} else if target.starts_with("riscv32i") {
println!("cargo:rustc-cfg=feature=\"riscv-esp32c3\"");
// TODO: Add feature here for risc-v targets
// println!("cargo:rustc-cfg=feature=\"riscv\"");
} else if target.starts_with("thumb") || target.starts_with("riscv32") {
panic!("Unknown target '{target}'. Need to update logic in build.rs.");
}
println!("cargo:rerun-if-changed=build.rs");
}