use std::env;
use std::path::PathBuf;
fn main() {
let lib = pkg_config::Config::new()
.probe("ddcutil")
.expect("ddcutil not found via pkg-config; is libddcutil-dev / ddcutil installed?");
let mut builder = bindgen::Builder::default()
.header_contents(
"wrapper.h",
"#include <ddcutil_types.h>\n#include <ddcutil_c_api.h>\n",
)
.allowlist_function("ddca_.*")
.allowlist_type("DDCA_.*")
.allowlist_var("DDCA_.*")
.derive_default(true)
.derive_debug(true)
.parse_callbacks(Box::new(bindgen::CargoCallbacks::new()));
for path in &lib.include_paths {
builder = builder.clang_arg(format!("-I{}", path.display()));
}
let bindings = builder.generate().expect("failed to generate ddcutil bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("failed to write bindings.rs");
}