| 123456789101112131415161718192021222324252627282930313233 |
- fn main() -> Result<(), std::io::Error> {
- const PROTOC_ENVAR: &str = "PROTOC";
- if std::env::var(PROTOC_ENVAR).is_err() {
- #[cfg(not(windows))]
- std::env::set_var(PROTOC_ENVAR, protobuf_src::protoc());
- }
- let proto_base_path = std::path::PathBuf::from("proto");
- let proto_files = [
- "confirmed_block.proto",
- "entries.proto",
- "transaction_by_addr.proto",
- ];
- let mut protos = Vec::new();
- for proto_file in &proto_files {
- let proto = proto_base_path.join(proto_file);
- println!("cargo:rerun-if-changed={}", proto.display());
- protos.push(proto);
- }
- tonic_build::configure()
- .build_client(true)
- .build_server(false)
- .type_attribute(
- "TransactionErrorType",
- "#[cfg_attr(test, derive(enum_iterator::Sequence))]",
- )
- .type_attribute(
- "InstructionErrorType",
- "#[cfg_attr(test, derive(enum_iterator::Sequence))]",
- )
- .compile(&protos, &[proto_base_path])
- }
|