use std::io::Result;
use std::process::Command;
fn main() -> Result<()> {
prost_build::compile_protos(&["proto/marc.proto"], &["proto"])?;
println!("cargo:rerun-if-changed=proto/marc.fbs");
if let Ok(output) = Command::new("flatc").arg("--version").output() {
if output.status.success() {
let status = Command::new("flatc")
.args(["--rust", "-o", "src/generated", "proto/marc.fbs"])
.status()
.expect("Failed to execute flatc");
if status.success() {
let generated_file = "src/generated/marc_generated.rs";
let _ = Command::new("rustfmt").arg(generated_file).status();
} else {
println!("cargo:warning=flatc failed to generate FlatBuffers code");
}
}
} else {
println!("cargo:warning=flatc not found, skipping FlatBuffers code generation");
}
Ok(())
}