1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- extern crate bindgen;
- use std::path::PathBuf;
- fn main() {
-
- println!("cargo:rustc-link-search=src");
- println!("cargo:rerun-if-changed=src/include/bindings/wrapper.h");
-
- let out_path = PathBuf::from(String::from("src/include/bindings/"));
-
-
-
- {
- let bindings = bindgen::Builder::default()
- .clang_arg("-I./src")
- .clang_arg("-I./src/include")
- .clang_arg("-I./src/arch/x86_64/include")
-
-
- .header("src/include/bindings/wrapper.h")
- .blocklist_file("src/include/bindings/bindings.h")
- .clang_arg("--target=x86_64-none-none")
- .clang_arg("-v")
-
- .use_core()
- .ctypes_prefix("::core::ffi")
- .generate_inline_functions(true)
- .raw_line("#![allow(dead_code)]")
- .raw_line("#![allow(non_upper_case_globals)]")
- .raw_line("#![allow(non_camel_case_types)]")
-
-
- .parse_callbacks(Box::new(bindgen::CargoCallbacks))
-
- .generate()
-
- .expect("Unable to generate bindings");
- bindings
- .write_to_file(out_path.join("bindings.rs"))
- .expect("Couldn't write bindings!");
- }
- }
|