diff --git a/Cargo.lock b/Cargo.lock index 4781bc5b2..e74c4130d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3024,6 +3024,7 @@ dependencies = [ "tower", "tracing", "tracing-subscriber", + "uniffi", "url", "urlencoding", "uuid", diff --git a/bindings/matrix-sdk-ffi/Cargo.toml b/bindings/matrix-sdk-ffi/Cargo.toml index f00a97740..4ca3307e2 100644 --- a/bindings/matrix-sdk-ffi/Cargo.toml +++ b/bindings/matrix-sdk-ffi/Cargo.toml @@ -69,6 +69,7 @@ features = [ "rustls-tls", # note: differ from block below "socks", "sqlite", + "uniffi", ] [target.'cfg(not(target_os = "android"))'.dependencies.matrix-sdk] @@ -83,4 +84,5 @@ features = [ "native-tls", # note: differ from block above "socks", "sqlite", + "uniffi", ] diff --git a/crates/matrix-sdk/Cargo.toml b/crates/matrix-sdk/Cargo.toml index 66a69e78a..10b79264e 100644 --- a/crates/matrix-sdk/Cargo.toml +++ b/crates/matrix-sdk/Cargo.toml @@ -41,6 +41,8 @@ sso-login = ["dep:hyper", "dep:rand", "dep:tower"] image-proc = ["dep:image"] image-rayon = ["image-proc", "image?/jpeg_rayon"] +uniffi = ["dep:uniffi"] + experimental-oidc = [ "ruma/unstable-msc2967", "dep:chrono", @@ -101,6 +103,7 @@ thiserror = { workspace = true } tokio-stream = { workspace = true, features = ["sync"] } tower = { version = "0.4.13", features = ["make"], optional = true } tracing = { workspace = true, features = ["attributes"] } +uniffi = { workspace = true, optional = true } url = "2.2.2" urlencoding = "2.1.3" uuid = { version = "1.4.1", features = ["serde", "v4"], optional = true } diff --git a/crates/matrix-sdk/src/lib.rs b/crates/matrix-sdk/src/lib.rs index 50ee02345..1087f837b 100644 --- a/crates/matrix-sdk/src/lib.rs +++ b/crates/matrix-sdk/src/lib.rs @@ -82,6 +82,9 @@ pub use sliding_sync::{ SlidingSyncListLoadingState, SlidingSyncMode, SlidingSyncRoom, UpdateSummary, }; +#[cfg(feature = "uniffi")] +uniffi::setup_scaffolding!(); + #[cfg(any(test, feature = "testing"))] pub mod test_utils;