fn main() {
internal::run();
}
#[cfg(not(feature = "internal-bindgen-on-build"))]
mod internal {
pub fn run() {
let out = std::path::PathBuf::from(std::env::var_os("OUT_DIR").unwrap());
std::fs::remove_dir_all(&out).unwrap();
std::fs::create_dir(&out).unwrap();
cc::Build::new()
.file("src/bridge.c")
.include("src")
.compile("bridge");
}
}
#[cfg(feature = "internal-bindgen-on-build")]
mod internal {
pub fn run() {
bindgen::Builder::default()
.header("src/stb_image.h")
.layout_tests(false)
.prepend_enum_name(true)
.disable_name_namespacing()
.generate_comments(false)
.allowlist_function("^(stbi).*")
.allowlist_type("^(stbi).*")
.allowlist_var("^(stbi).*")
.blocklist_item(".*(from_file).*")
.ctypes_prefix("cty")
.allowlist_recursively(false)
.generate_inline_functions(true)
.rust_target(bindgen::RustTarget::Nightly)
.use_core()
.size_t_is_usize(true)
.clang_args([
"-x",
"c++",
"-std=c++17",
"-fno-inline-functions",
"-Ifpng\\src\\",
])
.generate()
.expect("unable to generate bindings")
.write_to_file("src/stb_image.rs")
.expect("couldn't write bindings in `src/stb_image.rs`");
}
}