| 123456789101112131415161718192021222324252627282930313233 |
- use std::{
- io::{stderr, Write},
- path::PathBuf,
- };
- fn main() {
- let headers = ["rust-headers.hpp"];
- let bindings = bindgen::Builder::default()
- .use_core()
- .ctypes_prefix("core::ffi")
- .headers(headers)
- .clang_arg("-I./gblibc/include")
- .clang_arg("-std=c++20")
- .opaque_type("std::.*")
- .enable_cxx_namespaces()
- .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
- .generate()
- .expect("Unable to generate bindings");
- let out_path = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap());
- let out = bindings.write_to_file(out_path.join("src/bindings.rs"));
- if let Err(err) = out {
- writeln!(
- stderr().lock(),
- "out_dir = {}",
- out_path.as_path().display()
- )
- .unwrap();
- Result::<(), _>::Err(err).expect("Couldn't write bindings!");
- }
- }
|