Many fixes later
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
use std::env;
|
||||
use std::process::Command;
|
||||
use std::path::PathBuf;
|
||||
|
||||
fn main() {
|
||||
let proto_file = "proto/interop.proto";
|
||||
|
||||
// 1. Generate prost/tonic code
|
||||
tonic_build::compile_protos(proto_file).expect("Failed to compile protos with tonic-build");
|
||||
|
||||
// 2. Generate roto code
|
||||
// Find protoc-gen-roto
|
||||
// We assume it's in the target/debug folder of the root project
|
||||
let root_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
|
||||
let plugin_path = PathBuf::from(&root_dir)
|
||||
.join("../")
|
||||
.join("target/debug/protoc-gen-roto");
|
||||
|
||||
if !plugin_path.exists() {
|
||||
println!("cargo:warning=protoc-gen-roto plugin not found at {:?}. Roto code generation will be skipped.", plugin_path);
|
||||
return;
|
||||
}
|
||||
|
||||
let out_dir = PathBuf::from(&root_dir).join("src/generated");
|
||||
|
||||
let status = Command::new("protoc")
|
||||
.arg(format!("--plugin=protoc-gen-roto={}", plugin_path.to_str().unwrap()))
|
||||
.arg(format!("--roto_out={}", out_dir.to_str().unwrap()))
|
||||
.arg(proto_file)
|
||||
.status()
|
||||
.expect("Failed to execute protoc");
|
||||
|
||||
if !status.success() {
|
||||
panic!("protoc failed to generate roto code");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user