27 lines
892 B
Rust
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();
|
|
}
|