diff --git a/.github/workflows/bindings_ci.yml b/.github/workflows/bindings_ci.yml index 829e835756..c9d54b0fb6 100644 --- a/.github/workflows/bindings_ci.yml +++ b/.github/workflows/bindings_ci.yml @@ -113,3 +113,44 @@ jobs: - name: Build the documentation working-directory: ${{ env.MATRIX_SDK_CRYPTO_JS_PATH }} run: npm run doc + + test-apple: + name: matrix-rust-components-swift + runs-on: macos-12 + + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + profile: minimal + override: true + + - name: Install targets + run: | + rustup target add aarch64-apple-ios-sim --toolchain nightly + rustup target add x86_64-apple-ios --toolchain nightly + + - name: Load cache + uses: Swatinem/rust-cache@v1 + + - name: Install Uniffi + uses: actions-rs/cargo@v1 + with: + command: install + # keep in sync with uniffi dependency in Cargo.toml's + args: uniffi_bindgen --version ^0.18 + + - name: Generate .xcframework + run: sh bindings/apple/debug_build_xcframework.sh ci + + - name: Run XCTests + run: | + xcodebuild test \ + -project bindings/apple/MatrixRustSDK.xcodeproj \ + -scheme MatrixRustSDK \ + -sdk iphonesimulator \ + -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.4' diff --git a/.github/workflows/ffi.yml b/.github/workflows/ffi.yml deleted file mode 100644 index a93687bbe2..0000000000 --- a/.github/workflows/ffi.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: FFI - -on: - workflow_dispatch: - push: - branches: [main] - pull_request: - branches: [main] - types: - - opened - - reopened - - synchronize - - ready_for_review - -env: - CARGO_TERM_COLOR: always - -jobs: - test: - name: Run Apple platform tests - runs-on: macos-12 - - steps: - - name: Checkout - uses: actions/checkout@v1 - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - profile: minimal - override: true - - - name: Install targets - run: | - rustup target add aarch64-apple-ios-sim --toolchain nightly - rustup target add x86_64-apple-ios --toolchain nightly - - - name: Load cache - uses: Swatinem/rust-cache@v1 - - - name: Install Uniffi - uses: actions-rs/cargo@v1 - with: - command: install - # keep in sync with uniffi dependency in Cargo.toml's - args: uniffi_bindgen --version ^0.18 - - - name: Generate .xcframework - run: sh bindings/apple/debug_build_xcframework.sh ci - - - name: Run XCTests - run: | - xcodebuild test \ - -project bindings/apple/MatrixRustSDK.xcodeproj \ - -scheme MatrixRustSDK \ - -sdk iphonesimulator \ - -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.4' diff --git a/Cargo.toml b/Cargo.toml index 8ba8533faa..61870bb881 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,10 @@ [workspace] members = [ "benchmarks", + "bindings/matrix-sdk-crypto-ffi", "bindings/matrix-sdk-crypto-js", "bindings/matrix-sdk-crypto-nodejs", + "bindings/matrix-sdk-ffi", "crates/*", "labs/*", "xtask", diff --git a/bindings/apple/build_xcframework.sh b/bindings/apple/build_xcframework.sh index 220f76a054..c0d2919e9c 100755 --- a/bindings/apple/build_xcframework.sh +++ b/bindings/apple/build_xcframework.sh @@ -53,7 +53,7 @@ lipo -create \ # Generate uniffi files -uniffi-bindgen generate "${SRC_ROOT}/crates/matrix-sdk-ffi/src/api.udl" --language swift --out-dir ${GENERATED_DIR} +uniffi-bindgen generate "${SRC_ROOT}/bindings/matrix-sdk-ffi/src/api.udl" --language swift --out-dir ${GENERATED_DIR} # Move them to the right place HEADERS_DIR=${GENERATED_DIR}/headers diff --git a/bindings/apple/debug_build_xcframework.sh b/bindings/apple/debug_build_xcframework.sh index d78c0fba5b..9022c14ddc 100755 --- a/bindings/apple/debug_build_xcframework.sh +++ b/bindings/apple/debug_build_xcframework.sh @@ -33,7 +33,7 @@ lipo -create \ -output "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a" # Generate uniffi files -uniffi-bindgen generate "${SRC_ROOT}/crates/matrix-sdk-ffi/src/api.udl" --language swift --out-dir ${GENERATED_DIR} +uniffi-bindgen generate "${SRC_ROOT}/bindings/matrix-sdk-ffi/src/api.udl" --language swift --out-dir ${GENERATED_DIR} # Move them to the right place HEADERS_DIR=${GENERATED_DIR}/headers diff --git a/crates/matrix-sdk-crypto-ffi/Cargo.toml b/bindings/matrix-sdk-crypto-ffi/Cargo.toml similarity index 92% rename from crates/matrix-sdk-crypto-ffi/Cargo.toml rename to bindings/matrix-sdk-crypto-ffi/Cargo.toml index 13e5c2b730..86a2d10021 100644 --- a/crates/matrix-sdk-crypto-ffi/Cargo.toml +++ b/bindings/matrix-sdk-crypto-ffi/Cargo.toml @@ -36,16 +36,16 @@ version = "0.2.2" features = ["lax_deserialize"] [dependencies.matrix-sdk-common] -path = "../matrix-sdk-common" +path = "../../crates/matrix-sdk-common" version = "0.5.0" [dependencies.matrix-sdk-crypto] -path = "../matrix-sdk-crypto" +path = "../../crates/matrix-sdk-crypto" version = "0.5.0" features = ["qrcode", "backups_v1"] [dependencies.matrix-sdk-sled] -path = "../matrix-sdk-sled" +path = "../../crates/matrix-sdk-sled" version = "0.1.0" default_features = false features = ["crypto-store"] diff --git a/crates/matrix-sdk-crypto-ffi/README.md b/bindings/matrix-sdk-crypto-ffi/README.md similarity index 100% rename from crates/matrix-sdk-crypto-ffi/README.md rename to bindings/matrix-sdk-crypto-ffi/README.md diff --git a/crates/matrix-sdk-crypto-ffi/build.rs b/bindings/matrix-sdk-crypto-ffi/build.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/build.rs rename to bindings/matrix-sdk-crypto-ffi/build.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/backup_recovery_key.rs b/bindings/matrix-sdk-crypto-ffi/src/backup_recovery_key.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/backup_recovery_key.rs rename to bindings/matrix-sdk-crypto-ffi/src/backup_recovery_key.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/device.rs b/bindings/matrix-sdk-crypto-ffi/src/device.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/device.rs rename to bindings/matrix-sdk-crypto-ffi/src/device.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/error.rs b/bindings/matrix-sdk-crypto-ffi/src/error.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/error.rs rename to bindings/matrix-sdk-crypto-ffi/src/error.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/lib.rs b/bindings/matrix-sdk-crypto-ffi/src/lib.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/lib.rs rename to bindings/matrix-sdk-crypto-ffi/src/lib.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/logger.rs b/bindings/matrix-sdk-crypto-ffi/src/logger.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/logger.rs rename to bindings/matrix-sdk-crypto-ffi/src/logger.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/machine.rs b/bindings/matrix-sdk-crypto-ffi/src/machine.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/machine.rs rename to bindings/matrix-sdk-crypto-ffi/src/machine.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/olm.udl b/bindings/matrix-sdk-crypto-ffi/src/olm.udl similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/olm.udl rename to bindings/matrix-sdk-crypto-ffi/src/olm.udl diff --git a/crates/matrix-sdk-crypto-ffi/src/responses.rs b/bindings/matrix-sdk-crypto-ffi/src/responses.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/responses.rs rename to bindings/matrix-sdk-crypto-ffi/src/responses.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/users.rs b/bindings/matrix-sdk-crypto-ffi/src/users.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/users.rs rename to bindings/matrix-sdk-crypto-ffi/src/users.rs diff --git a/crates/matrix-sdk-crypto-ffi/src/verification.rs b/bindings/matrix-sdk-crypto-ffi/src/verification.rs similarity index 100% rename from crates/matrix-sdk-crypto-ffi/src/verification.rs rename to bindings/matrix-sdk-crypto-ffi/src/verification.rs diff --git a/crates/matrix-sdk-crypto-ffi/uniffi.toml b/bindings/matrix-sdk-crypto-ffi/uniffi.toml similarity index 100% rename from crates/matrix-sdk-crypto-ffi/uniffi.toml rename to bindings/matrix-sdk-crypto-ffi/uniffi.toml diff --git a/crates/matrix-sdk-ffi/Cargo.toml b/bindings/matrix-sdk-ffi/Cargo.toml similarity index 91% rename from crates/matrix-sdk-ffi/Cargo.toml rename to bindings/matrix-sdk-ffi/Cargo.toml index cfa7e3ff5b..fc6c3e0c6a 100644 --- a/crates/matrix-sdk-ffi/Cargo.toml +++ b/bindings/matrix-sdk-ffi/Cargo.toml @@ -21,7 +21,7 @@ anyhow = "1.0.51" extension-trait = "1.0.1" futures-core = "0.3.17" futures-util = { version = "0.3.17", default-features = false } -matrix-sdk = { path = "../matrix-sdk", features = ["experimental-timeline", "markdown"] } +matrix-sdk = { path = "../../crates/matrix-sdk", features = ["experimental-timeline", "markdown"] } once_cell = "1.10.0" parking_lot = "0.12.0" sanitize-filename-reader-friendly = "2.2.1" diff --git a/crates/matrix-sdk-ffi/README.md b/bindings/matrix-sdk-ffi/README.md similarity index 100% rename from crates/matrix-sdk-ffi/README.md rename to bindings/matrix-sdk-ffi/README.md diff --git a/crates/matrix-sdk-ffi/build.rs b/bindings/matrix-sdk-ffi/build.rs similarity index 100% rename from crates/matrix-sdk-ffi/build.rs rename to bindings/matrix-sdk-ffi/build.rs diff --git a/crates/matrix-sdk-ffi/src/api.udl b/bindings/matrix-sdk-ffi/src/api.udl similarity index 100% rename from crates/matrix-sdk-ffi/src/api.udl rename to bindings/matrix-sdk-ffi/src/api.udl diff --git a/crates/matrix-sdk-ffi/src/backward_stream.rs b/bindings/matrix-sdk-ffi/src/backward_stream.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/backward_stream.rs rename to bindings/matrix-sdk-ffi/src/backward_stream.rs diff --git a/crates/matrix-sdk-ffi/src/client.rs b/bindings/matrix-sdk-ffi/src/client.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/client.rs rename to bindings/matrix-sdk-ffi/src/client.rs diff --git a/crates/matrix-sdk-ffi/src/lib.rs b/bindings/matrix-sdk-ffi/src/lib.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/lib.rs rename to bindings/matrix-sdk-ffi/src/lib.rs diff --git a/crates/matrix-sdk-ffi/src/messages.rs b/bindings/matrix-sdk-ffi/src/messages.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/messages.rs rename to bindings/matrix-sdk-ffi/src/messages.rs diff --git a/crates/matrix-sdk-ffi/src/room.rs b/bindings/matrix-sdk-ffi/src/room.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/room.rs rename to bindings/matrix-sdk-ffi/src/room.rs diff --git a/crates/matrix-sdk-ffi/src/uniffi_api.rs b/bindings/matrix-sdk-ffi/src/uniffi_api.rs similarity index 100% rename from crates/matrix-sdk-ffi/src/uniffi_api.rs rename to bindings/matrix-sdk-ffi/src/uniffi_api.rs diff --git a/codecov.yaml b/codecov.yaml index fdb8173854..4ed5579ec5 100644 --- a/codecov.yaml +++ b/codecov.yaml @@ -28,10 +28,10 @@ coverage: - "crates/matrix-sdk-ffi/" patch: off ignore: + - "bindings/matrix-sdk-crypto-ffi" - "bindings/matrix-sdk-crypto-js" - "bindings/matrix-sdk-crypto-nodejs" - - "crates/matrix-sdk-crypto-ffi" - - "crates/matrix-sdk-ffi" + - "bindings/matrix-sdk-ffi" - "crates/matrix-sdk-indexeddb" - "crates/matrix-sdk-test" - "crates/matrix-sdk-test-macros"