use cc; fn main() { let mut build = cc::Build::new(); // HACK: cc sucks println!("cargo:rerun-if-changed=src/rust_wrapper.cpp"); println!("cargo:rerun-if-changed=../shared/src"); // Build the required shared C++ bits, and the glue C++ code // that we can import to Rust. (Since the API surface is so small, // and not in danger of changing in a huge way, I am opting for manual // bindings instead of using a crate like the `cxx` crate. Sue me.) build .emit_rerun_if_env_changed(true) .cpp(true) .std("c++20") .include("../shared/src") .file("../shared/src/ivshmem.cpp") .file("../shared/src/client.cpp") .file("src/rust_wrapper.cpp") .compile("hazelnut_client_cpp_native"); }