use version_check::{Channel, Version};
const MSRV_MINOR: u16 = 36;
fn main() {
let msrv = Version::from_mmp(1, MSRV_MINOR, 0);
let mut minor_used = match Version::read() {
Some(version) => version,
None => {
println!(
"cargo:warning=Unable to determine rustc version. Assuming rustc {}.",
msrv
);
msrv
}
}
.to_mmp()
.1;
let channel = Channel::read();
match channel {
Some(channel) if channel.is_beta() => minor_used -= 1,
Some(channel) if channel.supports_features() => minor_used -= 2,
_ => {}
}
macro_rules! old_stable_compilers {
($($msrv_str:literal $minor:literal),+,) => {$(
if cfg!(feature = $msrv_str) {
if $minor + 1 <= minor_used {
println!(r#"cargo:rustc-cfg=reexport="1.{}""#, $minor + 1);
} else {
println!(r#"cargo:rustc-cfg=shim="1.{}""#, $minor + 1);
}
}
)*};
}
old_stable_compilers![
"msrv-1-36" 36,
"msrv-1-37" 37,
"msrv-1-38" 38,
"msrv-1-39" 39,
"msrv-1-40" 40,
"msrv-1-41" 41,
"msrv-1-42" 42,
"msrv-1-43" 43,
"msrv-1-44" 44,
"msrv-1-45" 45,
"msrv-1-46" 46,
"msrv-1-47" 47,
"msrv-1-48" 48,
"msrv-1-49" 49,
"msrv-1-50" 50,
];
}