use std::env;
use std::path::PathBuf;
use std::process::Command;
fn main() {
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| {
let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
format!("{}/build", manifest_dir)
});
let lib_dir = PathBuf::from(&out_dir).join("lib");
let src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
let status = Command::new("make")
.current_dir(&src_dir)
.env("OUT_DIR", &out_dir) .status()
.expect("Failed to execute make command");
if !status.success() {
panic!("Failed to build the C library");
}
println!("cargo:rustc-link-search=native={}", lib_dir.display());
let build_target = env::var("TARGET").unwrap();
if build_target.contains("windows") {
println!("cargo:rustc-link-lib=static=libhashtree");
} else {
println!("cargo:rustc-link-lib=static=hashtree");
}
}