use std::{env, path::PathBuf}; fn main() { let deps = system_deps::Config::new().probe().unwrap(); let mut builder = bindgen::builder() .header("src/wrapper.h") .allowlist_type("(_|)kadm5.*") .allowlist_function("kadm5.*") .allowlist_var("KADM5_.*") .allowlist_var("KRB5_NT_SRV_HST") .allowlist_var("KRB5_OK") .allowlist_function("krb5_init_context") .allowlist_function("krb5_free_context") .allowlist_function("krb5_get_error_message") .allowlist_function("krb5_free_error_message") .allowlist_function("krb5_parse_name") .allowlist_function("krb5_sname_to_principal") .allowlist_function("krb5_free_principal") .allowlist_function("krb5_unparse_name") .allowlist_function("krb5_free_unparsed_name") .allowlist_function("krb5_cc_get_principal") .allowlist_function("krb5_cc_default") .allowlist_function("krb5_cc_resolve") .allowlist_function("krb5_cc_close") .allowlist_function("krb5_get_default_realm") .allowlist_function("krb5_free_default_realm") .clang_arg("-fparse-all-comments") .derive_default(true) .generate_cstr(true) .parse_callbacks(Box::new(bindgen::CargoCallbacks::new())); for include_path in deps.all_include_paths() { builder = builder.clang_arg(format!("-I{}", include_path.display())); } let bindings = builder.generate().expect("Unable to generate bindings"); let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); bindings .write_to_file(out_path.join("bindings.rs")) .expect("Couldn't write bindings!"); }