fn main() {
println!("cargo:rerun-if-changed=src/core.zig");
let manifest_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
let out_dir = std::env::var("OUT_DIR").unwrap();
let status = std::process::Command::new("zig")
.args([
"build-lib",
"src/core.zig",
"-O",
"ReleaseFast",
"--name",
"pdcore",
&format!("-femit-bin={}/libpdcore.a", out_dir),
"-lc",
])
.current_dir(&manifest_dir)
.status();
match status {
Ok(s) if s.success() => {
println!("cargo:rustc-link-search=native={}", out_dir);
println!("cargo:rustc-link-lib=static=pdcore");
}
_ => {
println!(
"cargo:warning=Zig compilation failed; using pre-compiled libpdcore.a from source tree."
);
println!("cargo:rustc-link-search=native={}", manifest_dir);
println!("cargo:rustc-link-lib=static=pdcore");
}
}
}