You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.0 KiB
93 lines
3.0 KiB
#!/usr/bin/env bash |
|
|
|
# Copyright 2024 New Vector Ltd. |
|
# |
|
# SPDX-License-Identifier: AGPL-3.0-only |
|
# Please see LICENSE in the repository root for full details. |
|
|
|
# Exit on error |
|
set -e |
|
|
|
# Ask to build from local source or to clone the repository |
|
read -p "Do you want to build the Rust SDK from local source (yes/no) default to yes? " buildLocal |
|
buildLocal=${buildLocal:-yes} |
|
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then |
|
date=$(date +%Y%m%d%H%M%S) |
|
else |
|
date=$(gdate +%Y%m%d%H%M%S) |
|
fi |
|
|
|
elementPwd=$(pwd) |
|
|
|
# Ask for the Rust SDK local source path |
|
# if folder rustSdk/ exists, use it as default |
|
if [ "${buildLocal}" == "yes" ]; then |
|
read -p "Please enter the path to the Rust SDK local source, default to ../matrix-rust-sdk" rustSdkPath |
|
rustSdkPath=${rustSdkPath:-../matrix-rust-sdk/} |
|
if [ ! -d "${rustSdkPath}" ]; then |
|
printf "\nFolder ${rustSdkPath} does not exist. Please clone the matrix-rust-sdk repository in the folder ../matrix-rust-sdk.\n\n" |
|
exit 0 |
|
fi |
|
else |
|
read -p "Please enter the Rust SDK repository url, default to https://github.com/matrix-org/matrix-rust-sdk.git " rustSdkUrl |
|
rustSdkUrl=${rustSdkUrl:-https://github.com/matrix-org/matrix-rust-sdk.git} |
|
read -p "Please enter the Rust SDK branch, default to main " rustSdkBranch |
|
rustSdkBranch=${rustSdkBranch:-main} |
|
cd .. |
|
git clone "${rustSdkUrl}" matrix-rust-sdk-"$date" |
|
cd matrix-rust-sdk-"$date" |
|
git checkout "${rustSdkBranch}" |
|
rustSdkPath=$(pwd) |
|
cd "${elementPwd}" |
|
fi |
|
|
|
|
|
cd "${rustSdkPath}" |
|
git status |
|
|
|
read -p "Will build with this version of the Rust SDK ^. Is it correct (yes/no) default to yes? " sdkCorrect |
|
sdkCorrect=${sdkCorrect:-yes} |
|
|
|
if [ "${sdkCorrect}" != "yes" ]; then |
|
exit 0 |
|
fi |
|
|
|
# Ask if the user wants to build the app after |
|
read -p "Do you want to build the app after (yes/no) default to yes? " buildApp |
|
buildApp=${buildApp:-yes} |
|
|
|
cd "${elementPwd}" |
|
|
|
# If folder ../matrix-rust-components-kotlin does not exist, clone the repo |
|
if [ ! -d "../matrix-rust-components-kotlin" ]; then |
|
printf "\nFolder ../matrix-rust-components-kotlin does not exist. Cloning the repository into ../matrix-rust-components-kotlin.\n\n" |
|
git clone https://github.com/matrix-org/matrix-rust-components-kotlin.git ../matrix-rust-components-kotlin |
|
fi |
|
|
|
printf "\nResetting matrix-rust-components-kotlin to the latest main branch...\n\n" |
|
cd ../matrix-rust-components-kotlin |
|
git reset --hard |
|
git checkout main |
|
git pull |
|
|
|
printf "\nBuilding the SDK for aarch64-linux-android...\n\n" |
|
./scripts/build.sh -p "${rustSdkPath}" -m sdk -t aarch64-linux-android -o "${elementPwd}/libraries/rustsdk" |
|
|
|
cd "${elementPwd}" |
|
mv ./libraries/rustsdk/sdk-android-debug.aar ./libraries/rustsdk/matrix-rust-sdk.aar |
|
mkdir -p ./libraries/rustsdk/sdks |
|
cp ./libraries/rustsdk/matrix-rust-sdk.aar ./libraries/rustsdk/sdks/matrix-rust-sdk-"${date}".aar |
|
|
|
|
|
if [ "${buildApp}" == "yes" ]; then |
|
printf "\nBuilding the application...\n\n" |
|
./gradlew assembleDebug |
|
fi |
|
|
|
if [ "${buildLocal}" == "no" ]; then |
|
printf "\nCleaning up...\n\n" |
|
rm -rf ../matrix-rust-sdk-"$date" |
|
fi |
|
|
|
printf "\nDone!\n"
|
|
|