fn main() {
if std::env::var("CARGO_FEATURE_FFI").is_ok() {
let status = std::process::Command::new("zig")
.args(["build", "-Doptimize=ReleaseFast"])
.current_dir(".")
.status();
match status {
Ok(s) if s.success() => {
let lib_dir = std::env::current_dir().unwrap();
let static_lib = lib_dir.join("zig-out/lib/libzig_agents.a");
if static_lib.exists() {
println!("cargo:rustc-link-search=native={}", lib_dir.display());
println!("cargo:rustc-link-lib=static=zig_agents");
} else {
println!("cargo:warning=zig build succeeded but static library not found at {:?}", static_lib);
}
}
Ok(s) => {
println!("cargo:warning=zig build failed for zig-agents (exit {:?})", s.code());
}
Err(e) => {
println!("cargo:warning=failed to run zig build for zig-agents: {}", e);
}
}
}
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=src/lib.zig");
println!("cargo:rerun-if-changed=build.zig.zon");
}