package-android.sh (2384B)
1 #!/bin/env bash 2 set -e 3 4 if [[ $# -ne 1 ]]; then 5 echo "Usage: $0 [x86|x86_64|arm64|armeabi]" 6 echo "Usage: $0 all" 7 echo "Usage: $0 gradle" 8 exit 1 9 fi 10 11 ANDROID_DIR=./QuickJS-android 12 NDK_VERSION=29.0.14206865 13 14 if [[ "$OSTYPE" =~ ^linux-gnu* ]]; then 15 export ANDROID_HOME="${ANDROID_HOME:-${HOME}/Android/Sdk}" 16 export PATH="${PATH}:${ANDROID_HOME}/ndk/${NDK_VERSION}/toolchains/llvm/prebuilt/linux-x86_64/bin" 17 elif [[ "$OSTYPE" =~ ^darwin* ]]; then 18 export ANDROID_HOME="${ANDROID_HOME:-${HOME}/Library/Android/Sdk}" 19 export PATH="${PATH}:${ANDROID_HOME}/ndk/${NDK_VERSION}/toolchains/llvm/prebuilt/darwin-x86_64/bin/" 20 else 21 echo "unsupported platform $OSTYPE" 22 exit -1 23 fi 24 25 export PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin" 26 export ANDROID_SDK_ROOT="${ANDROID_HOME}" 27 export ANDROID_NDK_HOME="${ANDROID_HOME}/ndk/${NDK_VERSION}" 28 29 # Install NDK version if it doesn't exist 30 if [ ! -d "$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" ]; then 31 sdkmanager "ndk;$NDK_VERSION" 32 fi 33 34 JNILIBS_DIR=$ANDROID_DIR/qtart/src/main/jniLibs 35 36 if [ "$1" = "all" ] || [ "$1" = "x86" ]; then 37 ./cross/build-android.sh x86 38 cp ./build-android/x86/libtalerwalletcore.so $JNILIBS_DIR/x86 39 cp ./build-android/x86/subprojects/c-ares/libc_ares.so $JNILIBS_DIR/x86 40 fi 41 42 if [ "$1" = "all" ] || [ "$1" = "x86_64" ]; then 43 ./cross/build-android.sh x86_64 44 cp ./build-android/x86_64/libtalerwalletcore.so $JNILIBS_DIR/x86_64 45 cp ./build-android/x86_64/subprojects/c-ares/libc_ares.so $JNILIBS_DIR/x86_64 46 fi 47 48 if [ "$1" = "all" ] || [ "$1" = "arm64" ]; then 49 ./cross/build-android.sh arm64-v8a 50 cp ./build-android/arm64-v8a/libtalerwalletcore.so $JNILIBS_DIR/arm64-v8a 51 cp ./build-android/arm64-v8a/subprojects/c-ares/libc_ares.so $JNILIBS_DIR/arm64-v8a 52 fi 53 54 if [ "$1" = "all" ] || [ "$1" = "armeabi" ]; then 55 ./cross/build-android.sh armeabi-v7a 56 cp ./build-android/armeabi-v7a/libtalerwalletcore.so $JNILIBS_DIR/armeabi-v7a 57 cp ./build-android/armeabi-v7a/subprojects/c-ares/libc_ares.so $JNILIBS_DIR/armeabi-v7a 58 fi 59 60 pushd $ANDROID_DIR 61 if [ "${MAVEN_PUBLISH:-0}" = 0 ]; then 62 ./gradlew --build-cache \ 63 --console=plain \ 64 publishToMavenLocal 65 elif [ "${MAVEN_PUBLISH:-0}" = 1 ]; then 66 ./gradlew --build-cache \ 67 --console=plain \ 68 publishAllPublicationsToMavenCentralRepository 69 fi 70 popd 71 72 tput bel