build.rs

 1#![allow(clippy::disallowed_methods, reason = "build scripts are exempt")]
 2
 3fn main() {
 4    println!("cargo::rustc-check-cfg=cfg(macos_sdk_26)");
 5
 6    #[cfg(target_os = "macos")]
 7    {
 8        use std::process::Command;
 9
10        let output = Command::new("xcrun")
11            .args(["--sdk", "macosx", "--show-sdk-version"])
12            .output()
13            .unwrap();
14
15        let sdk_version = String::from_utf8(output.stdout).unwrap();
16        let major_version: Option<u32> = sdk_version
17            .trim()
18            .split('.')
19            .next()
20            .and_then(|v| v.parse().ok());
21
22        if let Some(major) = major_version
23            && major >= 26
24        {
25            println!("cargo:rustc-cfg=macos_sdk_26");
26        }
27    }
28}