use std::env;
use std::path::PathBuf;
fn main() {
println!("cargo:rerun-if-changed=shim/cuvslam_shim.h");
println!("cargo:rerun-if-changed=shim/cuvslam_shim.cpp");
println!("cargo:rerun-if-env-changed=CUVSLAM_SDK_DIR");
println!("cargo:rustc-check-cfg=cfg(cuvslam_stub)");
let Ok(sdk_dir) = env::var("CUVSLAM_SDK_DIR").map(PathBuf::from) else {
println!("cargo:rustc-cfg=cuvslam_stub");
return;
};
cc::Build::new()
.cpp(true)
.std("c++20")
.file("shim/cuvslam_shim.cpp")
.include(sdk_dir.join("include"))
.compile("cuvslam_shim");
let lib_dir = sdk_dir.join("lib");
println!("cargo:rustc-link-search=native={}", lib_dir.display());
println!("cargo:rustc-link-lib=dylib=cuvslam");
println!("cargo:rustc-link-arg=-Wl,-rpath,{}", lib_dir.display());
println!("cargo:lib_dir={}", lib_dir.display());
}