use std::env;
extern crate cc;
extern crate peg;
fn main() {
let is_release = env::var("PROFILE").unwrap() == "release";
peg::cargo_build("src/parser.peg");
{
let mut build = cc::Build::new();
for path in std::fs::read_dir("./src/vm").unwrap() {
if let Some(path) = path.unwrap().path().to_str() {
let pstr = path.to_string();
if pstr.ends_with(".c") {
build.file(pstr);
}
}
}
if env::var("NOLOG").is_ok() || is_release {
build.define("NOLOG", None);
}
if env::var("PROFILE").is_ok() {
build.flag("-pg");
}
if is_release {
build.flag("-flto");
}
build
.flag("-Wall")
.flag("-Wno-unused-parameter")
.flag("-std=c11")
.shared_flag(true)
.static_flag(true)
.compile("hana");
}
}