aboutsummaryrefslogtreecommitdiffstats
path: root/crates/turtle/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/turtle/build.rs')
-rw-r--r--crates/turtle/build.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/crates/turtle/build.rs b/crates/turtle/build.rs
new file mode 100644
index 00000000..62612968
--- /dev/null
+++ b/crates/turtle/build.rs
@@ -0,0 +1,32 @@
+use std::{env, fs, path::PathBuf};
+
+use protox::Compiler;
+use protox::prost::Message;
+
+fn main() -> Result<(), std::io::Error> {
+ let proto_paths = [
+ "proto/history.proto",
+ "proto/control.proto",
+ ];
+ let proto_include_dirs = ["proto"];
+
+ let file_descriptor_set = Compiler::new(proto_include_dirs)
+ .map_err(std::io::Error::other)?
+ .include_source_info(true)
+ .include_imports(true)
+ .open_files(proto_paths)
+ .map_err(std::io::Error::other)?
+ .file_descriptor_set();
+
+ let file_descriptor_path = PathBuf::from(env::var_os("OUT_DIR").expect("OUT_DIR not set"))
+ .join("file_descriptor_set.bin");
+ fs::write(&file_descriptor_path, file_descriptor_set.encode_to_vec()).unwrap();
+
+ tonic_prost_build::configure()
+ .build_server(true)
+ .file_descriptor_set_path(&file_descriptor_path)
+ .skip_protoc_run()
+ .compile_protos(&proto_paths, &proto_include_dirs)?;
+
+ Ok(())
+}