fn main() {
#[cfg(feature = "c-bindings")]
{
use std::env;
use std::path::PathBuf;
let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let output_dir = PathBuf::from(&crate_dir).join("include");
std::fs::create_dir_all(&output_dir).expect("Failed to create include directory");
let config = cbindgen::Config {
language: cbindgen::Language::C,
cpp_compat: true,
include_guard: Some("EMBEDDENATOR_INTEROP_H".to_string()),
header: Some("/* Embeddenator Interop FFI Bindings\n * Auto-generated by cbindgen\n * DO NOT EDIT MANUALLY\n */".to_string()),
include_version: true,
namespace: None,
documentation: true,
documentation_style: cbindgen::DocumentationStyle::C,
tab_width: 4,
line_length: 100,
..Default::default()
};
cbindgen::Builder::new()
.with_crate(crate_dir)
.with_config(config)
.with_src("src/ffi.rs")
.generate()
.expect("Unable to generate C bindings")
.write_to_file(output_dir.join("embeddenator_interop.h"));
println!("cargo:rerun-if-changed=src/ffi.rs");
}
}