34 lines
1.0 KiB
Rust
34 lines
1.0 KiB
Rust
use std::{error::Error, path::Path};
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
if std::env::var("CARGO_CFG_TARGET_OS")? == "windows" {
|
|
let mut res = winresource::WindowsResource::new();
|
|
res.set_icon("assets/lemur.ico");
|
|
res.compile()?;
|
|
}
|
|
|
|
println!("cargo::rerun-if-changed=shrooms-vb-core");
|
|
|
|
let mut builder = cc::Build::new();
|
|
let _ = builder.try_flags_from_environment("SHROOMS_CFLAGS");
|
|
let opt_level = if builder.get_compiler().is_like_msvc() {
|
|
2
|
|
} else {
|
|
3
|
|
};
|
|
builder
|
|
.include(Path::new("shrooms-vb-core/core"))
|
|
.opt_level(opt_level)
|
|
.flag_if_supported("-fno-strict-aliasing")
|
|
.define("VB_LITTLE_ENDIAN", None)
|
|
.define("VB_SIGNED_PROPAGATE", None)
|
|
.define("VB_DIV_GENERIC", None)
|
|
.define("VB_DIRECT_EXECUTE", "on_execute")
|
|
.define("VB_DIRECT_READ", "on_read")
|
|
.define("VB_DIRECT_WRITE", "on_write")
|
|
.file(Path::new("shrooms-vb-core/core/vb.c"))
|
|
.compile("vb");
|
|
|
|
Ok(())
|
|
}
|