@@ -8,6 +8,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
88 return Err ( "Proto directory not found at ../../protos" . into ( ) ) ;
99 }
1010
11+ // ── v1 protos (prost_build) ──────────────────────────────────
1112 let proto_file_path = protos_dir. join ( "polycentric.proto" ) ;
1213 let ffi_proto_file_path = protos_dir. join ( "rs-core-ffi.proto" ) ;
1314
@@ -34,8 +35,31 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
3435 }
3536 }
3637
38+ // ── v2 protos (tonic_prost_build) ────────────────────────────
39+ let v2_protos = [
40+ "../../protos/polycentric/v2/identity.proto" ,
41+ "../../protos/polycentric/v2/events.proto" ,
42+ "../../protos/polycentric/v2/content.proto" ,
43+ "../../protos/polycentric/v2/feeds.proto" ,
44+ ] ;
45+
46+ let out_dir_path = PathBuf :: from ( & out_dir) ;
47+ tonic_prost_build:: configure ( )
48+ . build_transport ( false )
49+ . file_descriptor_set_path (
50+ out_dir_path. join ( "polycentric_v2.bin" ) ,
51+ )
52+ . compile_protos ( & v2_protos, & [ "../../protos" ] ) ?;
53+
54+ // ── rerun-if-changed ─────────────────────────────────────────
3755 println ! ( "cargo:rerun-if-changed={}" , proto_file_path. display( ) ) ;
38- println ! ( "cargo:rerun-if-changed={}" , ffi_proto_file_path. display( ) ) ;
56+ println ! (
57+ "cargo:rerun-if-changed={}" ,
58+ ffi_proto_file_path. display( )
59+ ) ;
60+ for proto in & v2_protos {
61+ println ! ( "cargo:rerun-if-changed={proto}" ) ;
62+ }
3963
4064 Ok ( ( ) )
4165}
0 commit comments