diff options
author | Antonio Cardace <acardace@redhat.com> | 2020-08-11 18:55:06 +0200 |
---|---|---|
committer | Antonio Cardace <acardace@redhat.com> | 2020-08-21 10:15:31 +0200 |
commit | 6451fe9202904e8110ebdd0b372c1e04ecbdfc87 (patch) | |
tree | 4e8ae57641397212353a60b20b4228701f56723d /dhcp-client/build.rs | |
parent | bc0d4e610f261ed0718aa6f9b0ec87f8f033af44 (diff) | |
download | NetworkManager-ac/dhcp_rust.tar.gz |
ndhcp4: trying sandboxing with rustac/dhcp_rust
Diffstat (limited to 'dhcp-client/build.rs')
-rw-r--r-- | dhcp-client/build.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dhcp-client/build.rs b/dhcp-client/build.rs new file mode 100644 index 0000000000..966c965092 --- /dev/null +++ b/dhcp-client/build.rs @@ -0,0 +1,43 @@ +use bindgen; +use meson; +use std::env; +use std::path::PathBuf; +use varlink_generator; + +fn main() { + let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); + let meson_path = out_path.join("build"); + let build_path_ndhcp4 = meson_path.join("src"); + let build_path_c_siphash = meson_path.join("subprojects/c-siphash/src"); + + meson::build("n-dhcp4", meson_path.to_str().unwrap()); + + bindgen::Builder::default() + // The input header we would like to generate + // bindings for. + .header("wrapper.h") + .clang_arg("-In-dhcp4/src") + // Tell cargo to invalidate the built crate whenever any of the + // included header files changed. + .parse_callbacks(Box::new(bindgen::CargoCallbacks)) + // Finish the builder and generate the bindings. + .generate() + // Unwrap the Result and panic on failure. + .expect("Unable to generate bindings") + .write_to_file(out_path.join("bindings.rs")) + .expect("Couldn't write bindings!"); + + println!("cargo:rerun-if-changed=wrapper.h"); + println!("cargo:rustc-link-lib=static=ndhcp4-private"); + println!("cargo:rustc-link-lib=static=csiphash-private"); + println!( + "cargo:rustc-link-search={}", + build_path_ndhcp4.to_str().unwrap() + ); + println!( + "cargo:rustc-link-search={}", + build_path_c_siphash.to_str().unwrap() + ); + + varlink_generator::cargo_build_tosource("src/com.redhat.dhcp", true); +} |