fn main() {
println!("cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS");
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
match target_os.as_str() {
"macos" | "openbsd" | "netbsd" => return,
"freebsd" => {
println!("cargo:rustc-link-lib=util");
return;
}
"windows" => {
panic!("libbsd-sys does not support Windows");
}
_ => {}
}
println!("cargo:rerun-if-env-changed=CARGO_FEATURE_STATIC");
println!("cargo:rerun-if-env-changed=CARGO_FEATURE_OVERLAY");
let statik = std::env::var_os("CARGO_FEATURE_STATIC").is_some();
let overlay = std::env::var_os("CARGO_FEATURE_OVERLAY").is_some();
let pkg = if overlay { "libbsd-overlay" } else { "libbsd" };
let mut cfg = pkg_config::Config::new();
cfg.atleast_version("0.11");
if statik {
cfg.statik(true);
}
let lib = cfg
.probe(pkg)
.unwrap_or_else(|e| panic!("{pkg} not found: {e}; install libbsd-dev"));
for path in &lib.include_paths {
println!("cargo:metadata=include={}", path.display());
}
}