33 lines
1.1 KiB
Rust
33 lines
1.1 KiB
Rust
use cmake::Config;
|
|
|
|
fn main() {
|
|
let dst = Config::new("CTranslate2")
|
|
// Default flags.
|
|
.define("CMAKE_BUILD_TYPE", "Release")
|
|
.define("BUILD_CLI", "OFF")
|
|
.define("CMAKE_INSTALL_RPATH_USE_LINK_PATH", "ON")
|
|
|
|
// FIXME(meng): support linux build.
|
|
// OSX flags.
|
|
.define("CMAKE_OSX_ARCHITECTURES", "arm64")
|
|
.define("WITH_ACCELERATE", "ON")
|
|
.define("WITH_MKL", "OFF")
|
|
.define("OPENMP_RUNTIME", "NONE")
|
|
.define("WITH_RUY", "ON")
|
|
.build();
|
|
|
|
println!("cargo:rustc-link-search=native={}", dst.join("lib").display());
|
|
println!("cargo:rustc-link-lib=ctranslate2");
|
|
|
|
// Tell cargo to invalidate the built crate whenever the wrapper changes
|
|
println!("cargo:rerun-if-changed=include/ctranslate2.h");
|
|
println!("cargo:rerun-if-changed=src/ctranslate2.cc");
|
|
println!("cargo:rerun-if-changed=src/lib.rs");
|
|
|
|
cxx_build::bridge("src/lib.rs")
|
|
.file("src/ctranslate2.cc")
|
|
.flag_if_supported("-std=c++17")
|
|
.flag_if_supported(&format!("-I{}", dst.join("include").display()))
|
|
.compile("cxxbridge");
|
|
}
|