mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-14 19:16:02 -04:00
Add script to generate only crypto-ffi crate
This commit is contained in:
@@ -42,7 +42,7 @@ android {
|
||||
|
||||
android.libraryVariants.all { variant ->
|
||||
def sourceSet = variant.sourceSets.find { it.name == variant.name }
|
||||
sourceSet.java.srcDir new File(buildDir, "generated/source/uniffi/${variant.name}/java")
|
||||
sourceSet.java.srcDir new File(buildDir, "generated/source/${variant.name}")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest package="org.matrix.rustcomponents.crypto.android">
|
||||
<manifest package="org.matrix.rustcomponents.sdk.crypto">
|
||||
|
||||
</manifest>
|
||||
|
||||
72
bindings/kotlin/scripts/build_crypto.sh
Executable file
72
bindings/kotlin/scripts/build_crypto.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eEu
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
CURRENT_DIR=$(pwd)
|
||||
|
||||
# FOR DEBUG
|
||||
#RELEASE_FLAG=""
|
||||
#RELEASE_TYPE_DIR="debug"
|
||||
#RELEASE_AAR_NAME="crypto-android-debug"
|
||||
|
||||
# FOR RELEASE
|
||||
RELEASE_FLAG="--release"
|
||||
RELEASE_TYPE_DIR="release"
|
||||
RELEASE_AAR_NAME="crypto-android-release"
|
||||
|
||||
SRC_ROOT=../../..
|
||||
# Path to the kotlin root project
|
||||
KOTLIN_ROOT=..
|
||||
|
||||
BASE_TARGET_DIR="${SRC_ROOT}/target"
|
||||
SDK_ROOT="${KOTLIN_ROOT}/crypto/crypto-android"
|
||||
SDK_TARGET_DIR="${SDK_ROOT}/src/main/jniLibs"
|
||||
BUILD_DIR="${SDK_ROOT}/build"
|
||||
GENERATED_DIR="${BUILD_DIR}/generated/source/${RELEASE_TYPE_DIR}"
|
||||
mkdir -p ${GENERATED_DIR}
|
||||
|
||||
TARGET_CRATE=matrix-sdk-crypto-ffi
|
||||
|
||||
AAR_DESTINATION=$1
|
||||
|
||||
# Build libs for all the different architectures
|
||||
|
||||
echo -e "Building for x86_64-linux-android[1/5]"
|
||||
cargo ndk --target x86_64-linux-android -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
||||
|
||||
echo -e "Building for aarch64-linux-android[2/5]"
|
||||
cargo ndk --target aarch64-linux-android -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
||||
|
||||
echo -e "Building for armv7-linux-androideabi[3/5]"
|
||||
cargo ndk --target armv7-linux-androideabi -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
||||
|
||||
echo -e "Building for i686-linux-android[4/5]"
|
||||
cargo ndk --target i686-linux-android -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
||||
|
||||
# this one is used only for the uniffi-bindgen --lib-file parameter
|
||||
# as it doesn't work with the generated .so file from cargo ndk
|
||||
echo -e "Building for aarch64-apple-darwin[5/5]"
|
||||
cargo build -p ${TARGET_CRATE} ${RELEASE_FLAG} --target "aarch64-apple-darwin"
|
||||
|
||||
# Generate uniffi files
|
||||
echo -e "Generate uniffi kotlin file"
|
||||
uniffi-bindgen generate "${SRC_ROOT}/bindings/${TARGET_CRATE}/src/olm.udl" \
|
||||
--language kotlin \
|
||||
--config "${SRC_ROOT}/bindings/${TARGET_CRATE}/uniffi.toml" \
|
||||
--out-dir ${GENERATED_DIR} \
|
||||
--lib-file "${BASE_TARGET_DIR}/aarch64-apple-darwin/${RELEASE_TYPE_DIR}/libmatrix_sdk_crypto_ffi.a"
|
||||
|
||||
# Create android library
|
||||
cd "${KOTLIN_ROOT}"
|
||||
./gradlew :crypto:crypto-android:assemble
|
||||
cd "${CURRENT_DIR}"
|
||||
|
||||
echo -e "Moving the generated aar file to ${AAR_DESTINATION}/matrix-rust-sdk-crypto.aar"
|
||||
mv "${BUILD_DIR}/outputs/aar/${RELEASE_AAR_NAME}.aar" "${AAR_DESTINATION}/matrix-rust-sdk-crypto.aar"
|
||||
|
||||
# Clean-up
|
||||
echo -e "Cleaning up temporary files"
|
||||
|
||||
rm -r "${BUILD_DIR}"
|
||||
rm -r "${SDK_TARGET_DIR}"
|
||||
|
||||
@@ -23,6 +23,5 @@ dependencyResolutionManagement {
|
||||
rootProject.name = "MatrixKotlinRustSDK"
|
||||
include ':crypto:crypto-android'
|
||||
include ':crypto:crypto-jvm'
|
||||
include ':crypto:crypto-jvm'
|
||||
include ':sdk:sdk-jvm'
|
||||
include ':sdk:sdk-android'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[bindings.kotlin]
|
||||
package_name = "org.matrix.sdk.crypto"
|
||||
package_name = "org.matrix.rustcomponents.sdk.crypto"
|
||||
|
||||
[bindings.swift]
|
||||
module_name = "MatrixSDKCrypto"
|
||||
|
||||
Reference in New Issue
Block a user