fn main() {
let proto_dir = "../arcbox-protocol/proto";
let protos = [
"../arcbox-protocol/proto/machine.proto",
"../arcbox-protocol/proto/container.proto",
"../arcbox-protocol/proto/image.proto",
"../arcbox-protocol/proto/agent.proto",
"../arcbox-protocol/proto/api.proto",
"../arcbox-protocol/proto/kubernetes.proto",
"../arcbox-protocol/proto/sandbox.proto",
];
let descriptor_path =
std::path::PathBuf::from(std::env::var("OUT_DIR").expect("OUT_DIR set by cargo"))
.join("arcbox_descriptor.bin");
tonic_build::configure()
.file_descriptor_set_path(&descriptor_path)
.extern_path(".arcbox.v1", "::arcbox_protocol::v1")
.extern_path(".sandbox.v1", "::arcbox_protocol::sandbox_v1")
.build_client(true)
.build_server(true)
.compile_protos(&protos, &[proto_dir])
.expect("Failed to compile protos");
for proto in &protos {
println!("cargo:rerun-if-changed={proto}");
}
println!("cargo:rerun-if-changed={proto_dir}/common.proto");
}