use std::env;
use std::path::PathBuf;
fn main() {
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
let root_dir = manifest_dir.parent().unwrap();
println!("cargo:rerun-if-changed=csonpath_rust_backend.c");
println!("cargo:rerun-if-changed=csonpath_rust_backend.h");
println!("cargo:rerun-if-changed={}", root_dir.join("csonpath.h").display());
println!("cargo:rerun-if-changed={}", root_dir.join("csonpath_do.h").display());
cc::Build::new()
.file("csonpath_rust_backend.c")
.include(root_dir)
.include(&manifest_dir)
.flag("-std=c11")
.flag("-O2")
.flag("-fno-strict-aliasing")
.flag("-Wno-unused-parameter")
.flag("-Wno-unused-function")
.flag("-Wno-unused-variable")
.compile("csonpath_rust_backend");
println!("cargo:rustc-link-lib=static=csonpath_rust_backend");
println!("cargo:rustc-link-search=native={}", out_dir.display());
if env::var("CARGO_CFG_TARGET_VENDOR").unwrap_or_default() == "apple" {
println!("cargo:rustc-link-arg=-Wl,-undefined,dynamic_lookup");
}
}