use std::{error::Error, path::Path}; fn main() -> Result<(), Box> { 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(()) }