use protobuf_codegen::Customize;
const UPROTOCOL_BASE_URI: &str = "up-spec/up-core-api/";
fn main() -> Result<(), Box<dyn std::error::Error>> {
let files = vec![
format!("{}uprotocol/uoptions.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/uuid.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/uri.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/uattributes.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/ucode.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/umessage.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/ustatus.proto", UPROTOCOL_BASE_URI),
format!("{}uprotocol/v1/file.proto", UPROTOCOL_BASE_URI),
#[cfg(feature = "udiscovery")]
format!(
"{}uprotocol/core/udiscovery/v3/udiscovery.proto",
UPROTOCOL_BASE_URI
),
#[cfg(feature = "usubscription")]
format!(
"{}uprotocol/core/usubscription/v3/usubscription.proto",
UPROTOCOL_BASE_URI
),
#[cfg(feature = "utwin")]
format!("{}uprotocol/core/utwin/v2/utwin.proto", UPROTOCOL_BASE_URI),
];
protobuf_codegen::Codegen::new()
.protoc()
.protoc_path(&protoc_bin_vendored::protoc_bin_path().unwrap())
.customize(Customize::default().tokio_bytes(true))
.include(UPROTOCOL_BASE_URI)
.inputs(files.as_slice())
.cargo_out_dir("uprotocol")
.run_from_script();
#[cfg(feature = "cloudevents")]
protobuf_codegen::Codegen::new()
.protoc()
.protoc_path(&protoc_bin_vendored::protoc_bin_path().unwrap())
.include("proto")
.inputs(["proto/io/cloudevents/v1/cloudevents.proto"])
.cargo_out_dir("cloudevents")
.run_from_script();
Ok(())
}