use std::env;
use std::path::PathBuf;
fn main() {
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=mjs/mjs.c");
println!("cargo:rerun-if-changed=mjs/mjs.h");
let platform = if cfg!(feature = "platform-custom") {
Some("0")
} else if cfg!(feature = "platform-unix") {
Some("1")
} else if cfg!(feature = "platform-windows") {
Some("2")
} else if cfg!(feature = "platform-esp32") {
Some("15")
} else if cfg!(feature = "platform-esp8266") {
Some("3")
} else if cfg!(feature = "platform-cc3100") {
Some("6")
} else if cfg!(feature = "platform-cc3200") {
Some("4")
} else if cfg!(feature = "platform-cc3220") {
Some("17")
} else if cfg!(feature = "platform-msp432") {
Some("5")
} else if cfg!(feature = "platform-tm4c129") {
Some("14")
} else if cfg!(feature = "platform-mbed") {
Some("7")
} else if cfg!(feature = "platform-wince") {
Some("8")
} else if cfg!(feature = "platform-nxp_lpc") {
Some("13")
} else if cfg!(feature = "platform-nxp_kinetis") {
Some("9")
} else if cfg!(feature = "platform-nrf51") {
Some("12")
} else if cfg!(feature = "platform-nrf52") {
Some("10")
} else if cfg!(feature = "platform-pic32") {
Some("11")
} else if cfg!(feature = "platform-rs14100") {
Some("18")
} else if cfg!(feature = "platform-stm32") {
Some("16")
} else {
None
};
cc::Build::new()
.file("mjs/mjs.c")
.include("mjs/")
.define("CS_PLATFORM", platform)
.define("CS_ENABLE_STDIO", Some("0")) .compile("mjs");
let bindings = bindgen::Builder::default()
.header("mjs/mjs.h")
.use_core()
.ctypes_prefix("cty")
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("mjs.rs"))
.expect("Couldn't write bindings");
}