fn main() {
#[cfg(feature = "grpc")]
{
let manifest = std::env::var("CARGO_MANIFEST_DIR").unwrap();
let proto_root = std::path::PathBuf::from(&manifest).join("proto");
println!("cargo:rerun-if-changed={}", proto_root.display());
if std::env::var_os("PROTOC").is_none() {
if let Ok(path) = protoc_bin_vendored::protoc_bin_path() {
std::env::set_var("PROTOC", path);
}
}
let v1_dir = proto_root.join("a2a_v1");
let v1_file = v1_dir.join("a2a.proto");
let mut includes = vec![v1_dir];
if let Ok(wkt) = protoc_bin_vendored::include_path() {
includes.push(wkt);
}
tonic_prost_build::configure()
.build_server(false)
.build_client(true)
.extern_path(".lf.a2a.v1", "::a2a_protocol_types::proto")
.compile_protos(&[v1_file], &includes)
.expect("Failed to compile canonical A2A proto (lf.a2a.v1)");
}
}