summaryrefslogtreecommitdiff
path: root/build.rs
blob: bdc2a55043f2867e4acf9f079edad4692d48bac2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::env;
use std::error::Error;
use std::path::PathBuf;

use bindgen::{CodegenConfig, MacroTypeVariation};

pub fn main() -> 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()?;

    let out_path = PathBuf::from(env::var("OUT_DIR")?);

    bindings.write_to_file(out_path.join("bindings.rs"))?;

    Ok(())
}