diff options
Diffstat (limited to 'content/2022-05-30-cmake-cargo-example/libcalc/build.rs')
-rw-r--r-- | content/2022-05-30-cmake-cargo-example/libcalc/build.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/content/2022-05-30-cmake-cargo-example/libcalc/build.rs b/content/2022-05-30-cmake-cargo-example/libcalc/build.rs new file mode 100644 index 0000000..acfa6a7 --- /dev/null +++ b/content/2022-05-30-cmake-cargo-example/libcalc/build.rs @@ -0,0 +1,24 @@ +fn main() { + let crate_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap(); + + let out_file = format!("{}/libcalc.h", std::env::var("LIBCALC_BUILD_DIR").unwrap_or(String::from("."))); + + let cfg = cbindgen::Config { + cpp_compat: true, + ..Default::default() + }; + + if std::path::Path::new(&out_file).exists() { + std::fs::remove_file(&out_file).unwrap(); + } + + let ok = cbindgen::Builder::new() + .with_config(cfg) + .with_crate(crate_dir) + .with_language(cbindgen::Language::C) + .with_include_guard("LIBCALC_H") + .generate() + .expect("Unable to generate bindings") + .write_to_file(&out_file); + assert!(ok); +} |