hazelnut/client/build.rs
modeco80 e0b12c9729 split the "C++ client bindings" properly
There probably isn't that much utility to doing this, but now the shared/ code can be imported to write a hazelnut client application in C++. Not that that's of any use to me, but seperating it means it should also be easier to work on. No more strange compile errors because clangd is confused and dumb.
2024-12-21 21:40:20 -05:00

23 lines
781 B
Rust

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");
}