| use std::env; |
| use std::path::PathBuf; |
| |
| fn main() { |
| // Generate C header bindings. |
| println!("cargo:rerun-if-changed=bindings.h"); |
| |
| let bindings = bindgen::Builder::default() |
| .header("bindings.h") |
| .parse_callbacks(Box::new(bindgen::CargoCallbacks)) |
| .generate() |
| .expect("Unable to generate C bindings"); |
| |
| let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); |
| bindings |
| .write_to_file(out_path.join("bindings.rs")) |
| .expect("Unable to write bindings.rs"); |
| |
| // Compile C code. |
| cc::Build::new() |
| .file("c/swap.c") |
| .flag("-std=c17") |
| .compile("swap"); |
| } |