veza/veza-stream-server/build.rs
senke 0e7b6fede1 [T0-002] fix(rust): Corriger erreurs compilation Rust
- Conflit SQLx résolu (alignement sur version 0.7)
- build.rs configurés pour protoc dans chat/stream servers
- API Prometheus migrée vers HistogramOpts
- Traits Display/Debug corrigés (String au lieu de &dyn Display)
- API TOTP corrigée (totp-rs 5.4 avec Secret::Encoded)
- Layers tracing-subscriber corrigés (types conditionnels)
- VezaError/VezaResult exportés dans lib.rs
- TransactionProvider simplifié (retour void au lieu de Box<dyn>)
- VezaConfig contraint Serialize pour to_json()

Files: veza-common/Cargo.toml, veza-common/src/*.rs, veza-chat-server/Cargo.toml, veza-chat-server/build.rs, veza-stream-server/Cargo.toml, veza-stream-server/build.rs, VEZA_ROADMAP.json
Hours: 8 estimated, 3 actual
2026-01-04 01:44:20 +01:00

41 lines
1.5 KiB
Rust

fn main() -> Result<(), Box<dyn std::error::Error>> {
// Générer les bindings Rust à partir des fichiers .proto
let proto_dir = "proto";
let proto_files = vec!["proto/stream/stream.proto", "proto/common/auth.proto"];
// Vérifier si protoc est disponible
// Si les fichiers générés existent déjà, on peut continuer sans protoc
let generated_dir = std::path::Path::new("src/generated");
let required_files = vec![
generated_dir.join("veza.stream.rs"),
generated_dir.join("veza.common.auth.rs"),
];
let all_generated_exist = required_files.iter().all(|p| p.exists());
if all_generated_exist {
// Les fichiers générés existent, on peut continuer sans protoc
println!("cargo:warning=Using pre-generated protobuf files. protoc not required.");
for proto_file in &proto_files {
println!("cargo:rerun-if-changed={}", proto_file);
}
println!("cargo:rerun-if-changed=build.rs");
return Ok(());
}
// Configuration tonic-build
tonic_build::configure()
.build_server(true)
.build_client(false) // Stream server est serveur, pas client
.out_dir("src/generated")
.compile(&proto_files, &[proto_dir])?;
// Recompiler si les fichiers .proto changent
for proto_file in &proto_files {
println!("cargo:rerun-if-changed={}", proto_file);
}
println!("cargo:rerun-if-changed=build.rs");
Ok(())
}