use std::{env, path::PathBuf};
fn main() {
cc::Build::new()
.cpp(true)
.flag_if_supported("-std=c++17")
.flag_if_supported("/std:c++17")
.flag_if_supported("-pthread")
.flag_if_supported("-O3")
.include("simdjson/singleheader")
.file("src/simdjson_c_api.cpp")
.file("simdjson/singleheader/simdjson.cpp")
.cargo_metadata(true)
.compile("simdjson_c_api");
let bindings = bindgen::Builder::default()
.header("src/simdjson_c_api.h")
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
println!("cargo:rerun-if-changed=src/simdjson_c_api.h");
println!("cargo:rerun-if-changed=src/simdjson_c_api.cpp");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
}