use cmake::Config;
use std::env;
use std::path::PathBuf;
fn main() {
let dst = Config::new("HiGHS").define("OPENMP", "ON").build();
println!("cargo:rustc-link-search=all={}/lib", dst.display());
println!("cargo:rustc-link-lib=highs");
let include_path = dst.join("include");
let src_path = PathBuf::from("HiGHS").join("src");
let bindings = bindgen::Builder::default()
.header(
include_path
.join("interfaces")
.join("highs_c_api.h")
.to_string_lossy(),
)
.clang_args(&[
&format!("-I{}", include_path.to_string_lossy()),
&format!("-I{}", src_path.to_string_lossy()),
])
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
}