| 12345678910111213141516171819202122232425262728293031323334 |
- //! Builds libthreema (d'oh!).
- use std::{env, io::Result};
- #[cfg(feature = "uniffi")]
- use uniffi as _;
- fn main() -> Result<()> {
- // Configure and compile protobuf
- println!("cargo:rerun-if-changed=../threema-protocols/src/");
- let mut builder = prost_build::Config::new();
- let builder = builder
- .message_attribute(".", "#[libthreema_macros::protobuf_annotations]")
- .enable_type_names();
- let builder = if env::var("CARGO_FEATURE_CLI").is_ok() {
- // For the CLI, we want to be able to parse some enums via clap.
- builder.enum_attribute(".d2m.DeviceSlotState", "#[derive(clap::ValueEnum)]")
- } else {
- builder
- };
- builder.compile_protos(
- &[
- "../threema-protocols/src/common.proto",
- "../threema-protocols/src/csp-e2e.proto",
- "../threema-protocols/src/md-d2d.proto",
- "../threema-protocols/src/md-d2d-sync.proto",
- "../threema-protocols/src/md-d2d-rendezvous.proto",
- "../threema-protocols/src/md-d2m.proto",
- ],
- &["../threema-protocols/src/"],
- )?;
- // Done
- Ok(())
- }
|