use std::process::Command;
fn main() {
let out_dir = std::env::var("OUT_DIR").unwrap();
let cargo_manifest_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
Command::new("cp")
.arg("--recursive")
.arg([&cargo_manifest_dir, "/vendor"].concat())
.arg([&out_dir, "/vendor"].concat())
.status()
.unwrap();
Command::new("./configure")
.current_dir([&out_dir, "/vendor"].concat())
.status()
.unwrap();
Command::new("make")
.arg("-C")
.arg([&out_dir, "/vendor/src"].concat())
.arg("liburing-ffi.a")
.status()
.unwrap();
println!(
"cargo:rustc-link-search={}",
[&out_dir, "/vendor/src"].concat()
);
println!("cargo:rustc-link-lib=static:+verbatim=liburing-ffi.a");
bindgen::builder()
.clang_arg(["-I", &out_dir, "/vendor/src/include"].concat())
.header([&out_dir, "/vendor/src/ffi.c"].concat())
.allowlist_file([&out_dir, "/vendor/src/include/liburing.h"].concat())
.allowlist_file([&out_dir, "/vendor/src/include/liburing/io_uring.h"].concat())
.generate()
.unwrap()
.write_to_file([&out_dir, "/bindings.rs"].concat())
.unwrap();
}