use std::env;
use std::path::PathBuf;
use bindgen::CargoCallbacks;
fn main() {
println!("cargo::rerun-if-changed=astronomy/source/c/astronomy.c");
println!("cargo::rerun-if-changed=astronomy/source/c/astronomy.h");
cc::Build::new()
.file("astronomy/source/c/astronomy.c")
.compile("astroeng");
let libdir_path = PathBuf::from("astronomy/source/c/")
.canonicalize()
.expect("cannot canonicalize path");
let headers_path = libdir_path.join("astronomy.h");
let headers_path_str = headers_path.to_str().expect("Path is not a valid string");
let bindings = bindgen::Builder::default()
.header(headers_path_str)
.parse_callbacks(Box::new(CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()).join("bindings.rs");
bindings
.write_to_file(out_path)
.expect("Couldn't write bindings!");
}