summaryrefslogtreecommitdiff
path: root/codegen/bindings.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2023-04-07 20:20:43 +0200
committerHampusM <hampus@hampusmat.com>2023-04-07 20:22:07 +0200
commit966ebb03abd8ae5ed4f47f4b53c00222269a56b4 (patch)
tree24e3325f1657bef89005583e9650b5c8e57459df /codegen/bindings.rs
parentc7efbb55f075748d88e25735c6d7e85ba768fd15 (diff)
refactor: replace usage of opengl-registry-macros
Diffstat (limited to 'codegen/bindings.rs')
-rw-r--r--codegen/bindings.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/codegen/bindings.rs b/codegen/bindings.rs
new file mode 100644
index 0000000..d6b7e0d
--- /dev/null
+++ b/codegen/bindings.rs
@@ -0,0 +1,24 @@
+use std::error::Error;
+use std::path::Path;
+
+use bindgen::{CodegenConfig, MacroTypeVariation};
+
+pub fn generate_bindings(dest_file: &Path) -> Result<(), Box<dyn Error>>
+{
+ println!("cargo:rerun-if-changed=gl.h");
+
+ let bindings = bindgen::Builder::default()
+ .header("gl.h")
+ .default_macro_constant_type(MacroTypeVariation::Signed)
+ .with_codegen_config(CodegenConfig::all() & !CodegenConfig::FUNCTIONS)
+ .allowlist_type("GL.*")
+ .allowlist_type("_cl_.*")
+ .allowlist_var("GL_.*")
+ .blocklist_item("GL_Z4.*")
+ .blocklist_item("GL_Z6.*")
+ .generate()?;
+
+ bindings.write_to_file(dest_file)?;
+
+ Ok(())
+}