pull/1/merge
Yuri Setiantoko 10 years ago
commit a0584dfdc3

@ -13,6 +13,7 @@ static VERSION: &'static str = "1.1.8"; // Should be the same as the version in
fn main() { fn main() {
let out_dir = env::var("OUT_DIR").unwrap(); let out_dir = env::var("OUT_DIR").unwrap();
let current_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); let current_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let driver_path = format!( let driver_path = format!(
"mongo-c-driver-{}", "mongo-c-driver-{}",
VERSION VERSION
@ -62,14 +63,33 @@ fn main() {
let bindings_rs_path = Path::new(&current_dir).join("src/bindings.rs"); let bindings_rs_path = Path::new(&current_dir).join("src/bindings.rs");
let mongo_h_path = Path::new(&current_dir).join(&driver_path).join("src/mongoc/mongoc.h"); let mongo_h_path = Path::new(&current_dir).join(&driver_path).join("src/mongoc/mongoc.h");
let bson_path = Path::new(&current_dir).join(&driver_path).join("src/libbson/src/bson"); let bson_path = Path::new(&current_dir).join(&driver_path).join("src/libbson/src/bson");
bindgen::builder()
.emit_builtins() // Add include CLANG_INCLUDE_DIR so that several issue in searching
.header(mongo_h_path.to_str().unwrap()) // clang include dir
.clang_arg(format!("-I{}", bson_path.to_str().unwrap())) match env::var("CLANG_INCLUDE_DIR") {
.generate() Ok(dir) => {
.unwrap() bindgen::builder()
.write_to_file(&bindings_rs_path) .emit_builtins()
.unwrap(); .header(mongo_h_path.to_str().unwrap())
.clang_arg(format!("-I{}", bson_path.to_str().unwrap()))
.clang_arg(format!("-I{}", dir))
.generate()
.unwrap()
.write_to_file(&bindings_rs_path)
.unwrap();
},
Err(_) => {
bindgen::builder()
.emit_builtins()
.header(mongo_h_path.to_str().unwrap())
.clang_arg(format!("-I{}", bson_path.to_str().unwrap()))
.generate()
.unwrap()
.write_to_file(&bindings_rs_path)
.unwrap();
}
}
} }
// Output to Cargo // Output to Cargo

Loading…
Cancel
Save