liburing-vendor 0.0.1

liburing bindings
Documentation
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();
}