summaryrefslogtreecommitdiff
path: root/glfw/build.rs
blob: aaf4446a8df2eed439436ed52d695196f259df73 (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
28
use std::env;
use std::error::Error;
use std::path::PathBuf;

use bindgen::MacroTypeVariation;

fn main() -> Result<(), Box<dyn Error>>
{
    println!("cargo:rustc-link-lib=glfw");

    println!("cargo:rerun-if-changed=glfw.h");

    let bindings = bindgen::Builder::default()
        .header("glfw.h")
        .clang_arg("-fretain-comments-from-system-headers")
        .generate_comments(true)
        .allowlist_function("glfw.*")
        .allowlist_type("GLFW.*")
        .allowlist_var("GLFW.*")
        .default_macro_constant_type(MacroTypeVariation::Signed)
        .generate()?;

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

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

    Ok(())
}