Files
2026-04-26 16:35:09 +00:00

41 lines
1.1 KiB
Rust

use std::path::PathBuf;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Use local proto/ dir (included in crate package).
// Falls back to the monorepo contracts/ dir for workspace dev builds.
let local_dir = PathBuf::from("proto");
let monorepo_dir: PathBuf = [".", "..", "..", "..", "..", "contracts", "proto"]
.iter()
.collect();
let proto_dir = if local_dir.exists() {
local_dir
} else {
monorepo_dir
};
let protos = [
"common.proto",
"agent.proto",
"bot.proto",
"human_simulator.proto",
"output.proto",
"events.proto",
];
let proto_files: Vec<PathBuf> = protos.iter().map(|p| proto_dir.join(p)).collect();
tonic_build::configure()
.build_server(true)
.build_client(true)
.compile_protos(&proto_files, &[&proto_dir])?;
// Re-run if any proto file changes
println!("cargo:rerun-if-changed={}", proto_dir.display());
for f in &proto_files {
println!("cargo:rerun-if-changed={}", f.display());
}
Ok(())
}