This commit is contained in:
Winter Hille 2025-08-29 18:04:07 -07:00
commit cde73248ec
11 changed files with 1011 additions and 0 deletions

27
sys/build.rs Normal file
View file

@ -0,0 +1,27 @@
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();
}