1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00
samba-mirror/rust/param/build.rs
David Mulder 33bdebb7c8 Enable rust cargo test in Samba make test
Signed-off-by: David Mulder <dmulder@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
2024-10-23 14:21:33 +00:00

54 lines
1.9 KiB
Rust

use std::env;
use std::path::PathBuf;
fn main() {
let bindings = bindgen::Builder::default()
.blocklist_function("qgcvt")
.blocklist_function("qgcvt_r")
.blocklist_function("qfcvt")
.blocklist_function("qfcvt_r")
.blocklist_function("qecvt")
.blocklist_function("qecvt_r")
.blocklist_function("strtold")
.clang_arg("-Dbool=int")
.clang_arg("-Doffset_t=loff_t")
.clang_arg("-I../../bin/default")
.clang_arg("-I../../lib/talloc")
.generate_comments(false)
.clang_arg("-includestdint.h")
.header("../../lib/param/param.h")
.header("../../lib/param/loadparm.h")
.header("../../source3/param/loadparm.h")
.header("../../bin/default/lib/param/param_functions.h")
.parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
.generate()
.expect("Unable to generate bindings");
println!("cargo:rerun-if-changed=../../lib/param/param.h");
println!("cargo:rerun-if-changed=../../lib/param/loadparm.h");
println!("cargo:rerun-if-changed=../../source3/param/loadparm.h");
println!(
"cargo:rerun-if-changed=../../bin/default/lib/param/param_functions.h"
);
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
let mut src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
src_dir.push("../../bin/default/source3");
println!(
"cargo:rustc-link-search=native={}",
src_dir.to_str().unwrap()
);
println!("cargo:rustc-link-lib=smbconf");
let mut src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
src_dir.push("../../bin/default/lib/param");
println!("cargo:rustc-link-lib=samba-hostconfig-private-samba");
println!(
"cargo:rustc-link-search=native={}",
src_dir.to_str().unwrap()
);
}