blob: 29378c8b302baab429a323cc33b84603031df81b [file] [log] [blame]
#! /bin/bash
# Build Jami daemon and client APK for Android
# Flags:
# --test: build in test mode
# --release: build in release mode
# --daemon: Only build the daemon for the selected archs
TEST=0
RELEASE=0
DAEMON_ONLY=0
for i in "${@}"; do
case "$i" in
test|--test)
TEST=1
;;
release|--release)
RELEASE=1
;;
daemon|--daemon)
DAEMON_ONLY=1
;;
*)
;;
esac
done
export RELEASE
if [ -z "$DAEMON_DIR" ]; then
DAEMON_DIR="$(pwd)/daemon"
echo "DAEMON_DIR not provided trying to find it in $DAEMON_DIR"
fi
if [ ! -d "$DAEMON_DIR" ]; then
echo 'Daemon not found.'
echo 'If you cloned the daemon in a custom location override DAEMON_DIR to point to it'
echo "You can also use our meta repo which contains both:
https://review.jami.net/admin/repos/jami-project"
exit 1
fi
export DAEMON_DIR
JNIDIR=$DAEMON_DIR/bin/jni
ANDROID_TOPLEVEL_DIR="$(pwd)"
ANDROID_APP_DIR="${ANDROID_TOPLEVEL_DIR}/jami-android"
GRADLE_PROPERTIES=
if [ -n "$ANDROID_ABI" ]; then
GRADLE_PROPERTIES="-Parchs=${ANDROID_ABI}"
fi
# Generate JNI interface
cd "$JNIDIR" || exit 1
PACKAGEDIR=$ANDROID_APP_DIR/libjamiclient/src/main/java ./make-swig.sh
if [[ $DAEMON_ONLY -eq 0 ]]; then
if [ -z "$RING_BUILD_FIREBASE" ]; then
echo "Building without Firebase support"
else
GRADLE_PROPERTIES="$GRADLE_PROPERTIES -PbuildFirebase"
echo "Building with Firebase support"
fi
if [[ $RELEASE -eq 1 ]]; then
echo "Building in release mode"
cd "$ANDROID_APP_DIR" && ./gradlew $GRADLE_PROPERTIES assembleRelease bundleRelease
elif [[ $TEST -eq 1 ]]; then
echo "Building in test mode"
cd "$ANDROID_APP_DIR" && ./gradlew $GRADLE_PROPERTIES assembleDebug assembleAndroidTest
else
echo "Building in debug mode"
echo "$GRADLE_PROPERTIES" assembleDebug
cd "$ANDROID_APP_DIR" && ./gradlew $GRADLE_PROPERTIES assembleDebug
fi
else
echo "Building daemon only"
cd "$ANDROID_APP_DIR" && ./gradlew $GRADLE_PROPERTIES buildCMakeDebug
fi