46 lines
1.3 KiB
Rust
Raw Normal View History

#[cfg(feature = "generate-c-api-headers")]
extern crate cbindgen;
use std::{env, path::Path};
static CAPI_ENV_VAR: &str = "WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS";
fn main() {
if env::var(CAPI_ENV_VAR).unwrap_or("0".to_string()) == "1" {
build();
}
}
#[cfg(feature = "generate-c-api-headers")]
fn build() {
let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
let out_dir = env::var("OUT_DIR").unwrap();
let out_path = Path::new(&out_dir);
let mut wasmer_h = out_path.to_path_buf();
wasmer_h.push("wasmer.h");
let mut wasmer_hh = out_path.to_path_buf();
wasmer_hh.push("wasmer.hh");
2019-02-01 22:10:36 -06:00
use cbindgen::Language;
cbindgen::Builder::new()
2019-02-04 19:54:12 -06:00
.with_crate(crate_dir.clone())
2019-02-01 22:10:36 -06:00
.with_language(Language::C)
2019-02-09 18:07:05 -06:00
.with_include_guard("WASMER_H")
.generate()
2019-02-04 19:54:12 -06:00
.expect("Unable to generate C bindings")
.write_to_file(wasmer_h);
2019-02-04 19:54:12 -06:00
cbindgen::Builder::new()
.with_crate(crate_dir)
.with_language(Language::Cxx)
2019-02-09 18:07:05 -06:00
.with_include_guard("WASMER_H")
2019-02-04 19:54:12 -06:00
.generate()
.expect("Unable to generate C++ bindings")
.write_to_file(wasmer_hh);
}
#[cfg(not(feature = "generate-c-api-headers"))]
fn build() {
panic!("environment var set to generate wasmer c API headers but generate-c-api-headers feature not enabled")
}