use std::{env, path::PathBuf}; fn main() -> Result<(), Box> { let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); std::env::set_var("CARGO_MANIFEST_DIR", std::env::var("PWD").unwrap()); let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); let proto_dir = manifest_dir.join("./protos/"); let proto_dir_file = manifest_dir.join("./protos/protocol.proto"); tonic_build::configure() .file_descriptor_set_path(out_dir.join("protocol_descriptor.bin")) // .compile(&["../protos/protocol.proto"], &["../protos"])?; .compile(&[proto_dir_file.clone()], &[proto_dir])?; tonic_build::compile_protos(proto_dir_file)?; Ok(()) }