floating-calculator/build.rs
2026-03-01 21:45:41 +01:00

34 lines
959 B
Rust

fn main() {
let lib = probe_libqalculate();
build_cxx_bridge(&lib);
emit_cargo_metadata();
}
fn probe_libqalculate() -> pkg_config::Library {
pkg_config::probe_library("libqalculate")
.expect("libqalculate not found — install it via your package manager")
}
fn build_cxx_bridge(lib: &pkg_config::Library) {
cxx_build::bridge("src/qalc/mod.rs")
.file("src/qalc/qalc_bridge.cc")
.includes(&lib.include_paths)
.include("src")
.flag_if_supported("-std=c++17")
.compiler("g++")
.compile("qalc-bridge");
}
fn emit_cargo_metadata() {
let out_dir = std::env::var("OUT_DIR").unwrap();
println!("cargo:rustc-link-search=native={out_dir}");
println!("cargo:rustc-link-lib=static=qalc-bridge");
for file in &[
"src/qalc/mod.rs",
"src/qalc/qalc_bridge.cc",
"src/qalc/qalc_bridge.h",
] {
println!("cargo:rerun-if-changed={file}");
}
}