45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			45 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");
 | |
|     }
 | |
| }
 |