use std::env;
use std::path::PathBuf;
fn main() {
let guile = pkg_config::Config::new()
.probe("guile-3.0")
.expect("Guile not found");
let header = guile.include_paths
.iter()
.find_map(|path| {
let candidate = path.join("libguile.h");
if candidate.exists() {
Some(candidate)
} else {
None
}
})
.expect("Cannot find libguile.h in include paths");
let mut builder = bindgen::Builder::default()
.header(header.to_str().unwrap());
for include in &guile.include_paths {
builder = builder.clang_arg(format!("-I{}", include.display()));
}
let bindings = builder
.use_core() .generate_block(true) .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
.generate()
.expect("Unable to generate bindings");
bindings
.write_to_file(
PathBuf::from(env::var("OUT_DIR").unwrap()).join("libguile.rs")
)
.unwrap();
}