2 use std::path::PathBuf;
5 let bindings = bindgen::Builder::default()
6 .blocklist_function("qgcvt")
7 .blocklist_function("qgcvt_r")
8 .blocklist_function("qfcvt")
9 .blocklist_function("qfcvt_r")
10 .blocklist_function("qecvt")
11 .blocklist_function("qecvt_r")
12 .blocklist_function("strtold")
13 .clang_arg("-Dbool=int")
14 .clang_arg("-Doffset_t=loff_t")
15 .clang_arg("-I../../bin/default")
16 .clang_arg("-I../../lib/talloc")
17 .generate_comments(false)
18 .clang_arg("-includestdint.h")
19 .header("../../lib/param/param.h")
20 .header("../../lib/param/loadparm.h")
21 .header("../../source3/param/loadparm.h")
22 .header("../../bin/default/lib/param/param_functions.h")
23 .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
25 .expect("Unable to generate bindings");
26 println!("cargo:rerun-if-changed=../../lib/param/param.h");
27 println!("cargo:rerun-if-changed=../../lib/param/loadparm.h");
28 println!("cargo:rerun-if-changed=../../source3/param/loadparm.h");
30 "cargo:rerun-if-changed=../../bin/default/lib/param/param_functions.h"
33 let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
35 .write_to_file(out_path.join("bindings.rs"))
36 .expect("Couldn't write bindings!");
38 let mut src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
39 src_dir.push("../../bin/default/source3");
41 "cargo:rustc-link-search=native={}",
42 src_dir.to_str().unwrap()
44 println!("cargo:rustc-link-lib=smbconf");
46 let mut src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
47 src_dir.push("../../bin/default/lib/param");
48 println!("cargo:rustc-link-lib=samba-hostconfig-private-samba");
50 "cargo:rustc-link-search=native={}",
51 src_dir.to_str().unwrap()