-
-
Notifications
You must be signed in to change notification settings - Fork 64
/
build.rs
27 lines (22 loc) · 794 Bytes
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::env;
use std::fs;
use std::io;
use std::path::Path;
fn main() -> io::Result<()> {
println!("cargo:rerun-if-changed=src/tests");
println!("cargo:rustc-check-cfg=cfg(trybuild_no_target)");
println!("cargo:rustc-check-cfg=cfg(host_os, values(\"windows\"))");
let out_dir = env::var_os("OUT_DIR").unwrap();
let target = env::var("TARGET").ok();
let path = Path::new(&out_dir).join("target");
let value = match target {
Some(target) => format!(r#"Some("{}")"#, target.escape_debug()),
None => "None".to_owned(),
};
fs::write(path, value)?;
let host = env::var_os("HOST").unwrap();
if let Some("windows") = host.to_str().unwrap().split('-').nth(2) {
println!("cargo:rustc-cfg=host_os=\"windows\"");
}
Ok(())
}