ggwave-rs/sys/build.rs
Winter Hille cde73248ec initial
2025-08-29 18:04:07 -07:00

27 lines
892 B
Rust

use std::{env, path::Path};
fn main() {
let out_dir = env::var("OUT_DIR").unwrap();
let out_dir = Path::new(&out_dir);
// TODO: add better error handling for when GGWAVE_PATH is not set
let ggwave_path = env::var("GGWAVE_PATH").unwrap();
let ggwave_path = Path::new(&ggwave_path);
let ggwave_lib_dir = ggwave_path.join("lib");
let ggwave_include_dir = ggwave_path.join("include");
println!("cargo:rustc-link-search=native={ggwave_lib_dir:?}");
println!("cargo:rustc-link-lib=ggwave");
let bindings = bindgen::Builder::default()
.header(ggwave_include_dir.join("ggwave/ggwave.h").to_string_lossy())
.clang_args(["-x", "c++"])
.derive_debug(true)
.derive_default(true)
.generate()
.unwrap();
let bindings_path = out_dir.join("bindings.rs");
bindings.write_to_file(&bindings_path).unwrap();
}