about summary refs log tree commit diff
path: root/tvix/store/build.rs
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2022-11-11T23·07+0000
committerflokli <flokli@flokli.de>2022-12-04T10·41+0000
commita97e3726df33b45cf385f66b78c30615ab1f3856 (patch)
treef6125b0315eaf81b457f4bdd88e593fcf6081cba /tvix/store/build.rs
parentc432aae9b3a4924baa8b76cdc6f052f6fe70b730 (diff)
feat(tvix/store): build rust proto files r/5385
This uses prost-build to build the proto files.

Change-Id: Ia99fcfa4a19c741683cf28a45202e1d9211f9131
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7286
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: Adam Joseph <adam@westernsemico.com>
Diffstat (limited to 'tvix/store/build.rs')
-rw-r--r--tvix/store/build.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tvix/store/build.rs b/tvix/store/build.rs
new file mode 100644
index 0000000000..cc0bf22930
--- /dev/null
+++ b/tvix/store/build.rs
@@ -0,0 +1,18 @@
+use std::io::Result;
+
+fn main() -> Result<()> {
+    prost_build::compile_protos(
+        &[
+            "tvix/store/protos/castore.proto",
+            "tvix/store/protos/pathinfo.proto",
+        ],
+        // If we are in running `cargo build` manually, using `../..` works fine,
+        // but in case we run inside a nix build, we need to instead point PROTO_ROOT
+        // to a sparseTree containing that structure.
+        &[match std::env::var_os(&"PROTO_ROOT") {
+            Some(proto_root) => proto_root.to_str().unwrap().to_owned(),
+            None => "../..".to_string(),
+        }],
+    )?;
+    Ok(())
+}