43 lines · 1.4 KB · Rust
RawDownload
#[cfg(target_os = "macos")]fn main() {    use std::{env, path::PathBuf, process::Command};     let sdk_path = String::from_utf8(        Command::new("xcrun")            .args(["--sdk", "macosx", "--show-sdk-path"])            .output()            .unwrap()            .stdout,    )    .unwrap();    let sdk_path = sdk_path.trim_end();     println!("cargo:rerun-if-changed=src/bindings.h");    let bindings = bindgen::Builder::default()        .header("src/bindings.h")        .clang_arg(format!("-isysroot{}", sdk_path))        .clang_arg("-xobjective-c")        .allowlist_type("CMItemIndex")        .allowlist_type("CMSampleTimingInfo")        .allowlist_type("CMVideoCodecType")        .allowlist_type("VTEncodeInfoFlags")        .allowlist_function("CMTimeMake")        .allowlist_var("kCVPixelFormatType_.*")        .allowlist_var("kCVReturn.*")        .allowlist_var("VTEncodeInfoFlags_.*")        .allowlist_var("kCMVideoCodecType_.*")        .allowlist_var("kCMTime.*")        .allowlist_var("kCMSampleAttachmentKey_.*")        .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))        .layout_tests(false)        .generate()        .expect("unable to generate bindings");     let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());    bindings        .write_to_file(out_path.join("bindings.rs"))        .expect("couldn't write dispatch bindings");} #[cfg(not(target_os = "macos"))]fn main() {}