fn main() {
println!("cargo:rerun-if-changed=build.rs");
let (major, minor) = rustc_version();
if major > 1 || minor >= 80 {
println!("cargo:rustc-check-cfg=cfg(linkcell_avx512)");
}
if major > 1 || minor >= 89 {
println!("cargo:rustc-cfg=linkcell_avx512");
}
}
fn rustc_version() -> (u32, u32) {
let rustc = std::env::var("RUSTC").unwrap_or_else(|_| "rustc".to_string());
let out = std::process::Command::new(rustc)
.arg("-vV")
.output()
.expect("rustc -vV");
let text = String::from_utf8_lossy(&out.stdout);
for line in text.lines() {
if let Some(rest) = line.strip_prefix("release: ") {
let ver = rest.split('-').next().unwrap_or(rest);
let mut parts = ver.split('.');
let major = parts.next().unwrap_or("1").parse().unwrap_or(1);
let minor = parts.next().unwrap_or("70").parse().unwrap_or(70);
return (major, minor);
}
}
(1, 70)
}