use cmake::Config; fn main() { println!("cargo:rerun-if-changed=cc/*.h"); println!("cargo:rerun-if-changed=cc/*.cc"); let mut config = Config::new("llama.cpp"); if cfg!(target_os = "macos") { config.define("LLAMA_METAL", "ON"); println!("cargo:rustc-link-lib=framework=Foundation"); println!("cargo:rustc-link-lib=framework=Accelerate"); println!("cargo:rustc-link-lib=framework=Metal"); println!("cargo:rustc-link-lib=framework=MetalKit"); } if cfg!(feature = "cuda") { config.define("LLAMA_CUBLAS", "ON"); } let dst = config.build(); println!("cargo:rustc-link-search=native={}/build", dst.display()); println!("cargo:rustc-link-lib=llama"); println!("cargo:rustc-link-lib=ggml_static"); cxx_build::bridge("src/lib.rs") .file("src/engine.cc") .flag_if_supported("-Iinclude") .flag_if_supported("-Illama.cpp") .flag_if_supported("-std=c++14") .compile("cxxbridge"); }