26 lines
790 B
Rust
26 lines
790 B
Rust
use std::{env, path::PathBuf};
|
|
|
|
fn main() -> anyhow::Result<()> {
|
|
let bindings = bindgen::builder()
|
|
.header("/usr/include/libei-1.0/libei.h")
|
|
.parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
|
|
.allowlist_item("ei_.*")
|
|
.default_enum_style(bindgen::EnumVariation::NewType {
|
|
is_bitfield: false,
|
|
is_global: false,
|
|
})
|
|
.no_debug("ei_event_type") // Implemented manually to use Display
|
|
.bitfield_enum("ei_device_capability")
|
|
.generate()?;
|
|
|
|
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
|
|
let out_file = out_path.join("libei.rs");
|
|
bindings
|
|
.write_to_file(out_file)
|
|
.expect("Couldn't write bindings!");
|
|
|
|
println!("cargo:rustc-link-lib=ei");
|
|
|
|
Ok(())
|
|
}
|