67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/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/4]"
|
|
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/4]"
|
|
cargo ndk --target aarch64-linux-android -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
|
|
|
echo -e "Building for armv7-linux-androideabi[3/4]"
|
|
cargo ndk --target armv7-linux-androideabi -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
|
|
|
echo -e "Building for i686-linux-android[4/4]"
|
|
cargo ndk --target i686-linux-android -o ${SDK_TARGET_DIR}/ build "${RELEASE_FLAG}" -p ${TARGET_CRATE}
|
|
|
|
# Generate uniffi files
|
|
echo -e "Generate uniffi kotlin file"
|
|
cargo 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}/x86_64-linux-android/${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}"
|