fn main() { cc::Build::new() .cpp(true) .file("cpp/itwom3.0.cpp") .file("cpp/itwom_ffi.cpp") .flag_if_supported("-std=c++11") .flag_if_supported("-O3") .flag_if_supported("-ffast-math") .flag_if_supported("-fomit-frame-pointer") .warnings(false) .compile("itwom"); // libbz2 is used by the SDF loader (FFI shim in src/sdf.rs). On this // machine libbz2-dev isn't installed system-wide, but miniconda ships it. // BZ2_BZ2_LIB_DIR can override; otherwise we probe common locations. if let Ok(dir) = std::env::var("BZ2_LIB_DIR") { println!("cargo:rustc-link-search=native={dir}"); } else { for candidate in ["/home/cescobar/miniconda3/lib", "/usr/lib/x86_64-linux-gnu"] { if std::path::Path::new(candidate).join("libbz2.so").exists() || std::path::Path::new(candidate).join("libbz2.a").exists() || std::path::Path::new(candidate).join("libbz2.so.1.0").exists() { println!("cargo:rustc-link-search=native={candidate}"); break; } } } println!("cargo:rustc-link-lib=dylib=bz2"); println!("cargo:rerun-if-changed=cpp/itwom3.0.cpp"); println!("cargo:rerun-if-changed=cpp/itwom_ffi.cpp"); println!("cargo:rerun-if-env-changed=BZ2_LIB_DIR"); }