1use std::{env, path::PathBuf};
2
3fn main() {
4 generate_dispatch_bindings();
5}
6
7fn generate_dispatch_bindings() {
8 println!("cargo:rustc-link-lib=framework=System");
9 println!("cargo:rerun-if-changed=src/platform/mac/dispatch.h");
10
11 let bindings = bindgen::Builder::default()
12 .header("src/platform/mac/dispatch.h")
13 .allowlist_var("_dispatch_main_q")
14 .allowlist_function("dispatch_async_f")
15 .parse_callbacks(Box::new(bindgen::CargoCallbacks))
16 .layout_tests(false)
17 .generate()
18 .expect("unable to generate bindings");
19
20 let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
21 bindings
22 .write_to_file(out_path.join("dispatch_sys.rs"))
23 .expect("couldn't write dispatch bindings");
24}