use std::env;
use std::path::PathBuf;
fn main() {
if let Ok(dir) = env::var("CJSON_DIR") {
let p = PathBuf::from(dir);
println!("cargo:rustc-link-search=native={}", p.display());
println!("cargo:rustc-link-lib=dylib=cjson");
println!("cargo:rustc-link-lib=dylib=cjson_utils");
return;
}
let workspace_manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap_or_default();
let candidate = PathBuf::from(&workspace_manifest_dir)
.join("..")
.join("build-host")
.join("cJSON")
.join("build");
if candidate.exists() {
println!("cargo:rustc-link-search=native={}", candidate.display());
println!("cargo:rustc-link-lib=dylib=cjson");
println!("cargo:rustc-link-lib=dylib=cjson_utils");
return;
}
let mut found_pkg = false;
if pkg_config::Config::new().probe("libcjson_utils").is_ok() {
found_pkg = true;
}
if pkg_config::Config::new().probe("libcjson").is_ok() {
found_pkg = true;
}
if found_pkg {
return;
}
println!("cargo:warning=Could not find cJSON via CJSON_DIR, pkg-config, or ../build-host/cJSON/build. Tests requiring cJSON may fail.");
}