extern crate bindgen;
use std::env;
use std::path::Path;
fn main() {
let out_dir = env::var("OUT_DIR").expect("failed to get envvar OUT_DIR");
let emscripten_dir = env::var("EMSCRIPTEN").expect("failed to get envvar EMSCRIPTEN");
let whitelist = "^_?em_|^_?emscripten_|^_?EM_|^_?EMSCRIPTEN_";
let builder = bindgen::builder()
.header("etc/emscripten.h")
.generate_comments(true)
.whitelisted_type(whitelist)
.whitelisted_function(whitelist)
.whitelisted_var(whitelist)
.no_unstable_rust()
.use_core()
.clang_arg(format!("-I{}/system/include", emscripten_dir))
.clang_arg(format!("-I{}/system/include/libc", emscripten_dir))
.clang_arg(format!("-I{}/system/include/libcxx", emscripten_dir))
.clang_arg("-x")
.clang_arg("c++")
.clang_arg("-std=c++11")
.clang_arg("-D__EMSCRIPTEN__");
builder
.generate()
.expect("failed to generate rust bindings")
.write_to_file(Path::new(&out_dir).join("emscripten.rs"))
.expect("failed to write to file")
}