extern crate bindgen;
#[cfg(not(feature = "cuda"))]
use cmake;
#[cfg(feature = "cuda")]
use cmake::Config;
use std::env;
use std::path::PathBuf;
fn main() {
let _source_dir = String::from("zfp-0.5.5");
#[cfg(feature = "0_5_4")]
let _source_dir = String::from("zfp-0.5.4");
#[cfg(not(feature = "cuda"))]
let zfp = cmake::build(_source_dir);
#[cfg(feature = "cuda")]
let zfp = Config::new(_source_dir)
.define("ZFP_WITH_CUDA", "ON")
.build();
println!("cargo:rustc-link-search=native={}/lib", zfp.display());
println!("cargo:rustc-link-search=native={}/lib64", zfp.display());
println!("cargo:rustc-link-lib=zfp");
let bindings = bindgen::Builder::default()
.blacklist_type("max_align_t")
.header("wrapper.h")
.clang_arg("-I")
.clang_arg(format!("{}/include", zfp.display()))
.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!");
}