31 lines
1009 B
Rust
31 lines
1009 B
Rust
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");
|
|
}
|