File indexing completed on 2024-04-21 14:43:51
0001 #!/bin/sh 0002 # Automate the android builds 0003 # This script creates the different apk for arm 0004 # 0005 # SPDX-FileCopyrightText: 2016 Bruno Coudoin <bruno.coudoin@gcompris.net> 0006 # 0007 # SPDX-License-Identifier: GPL-3.0-or-later 0008 0009 Qt5_BaseDIR=~/Qt/5.12.12 0010 export ANDROID_NDK_ROOT=$ANDROID_NDK 0011 0012 if [ "$#" -eq 1 ]; then 0013 Qt5_BaseDIR=$1 0014 echo "Overriding Qt5_BaseDIR to ${Qt5_BaseDIR}" 0015 fi 0016 0017 # The current version 0018 version=$(sed -n -e 's/set(GCOMPRIS_MINOR_VERSION \([0-9]\+\)).*/\1/p' CMakeLists.txt) 0019 0020 # The prefix of the build dir, will be suffixed by the arch target 0021 buildprefix=bb-$version 0022 0023 # 0024 if [ ! -f org.kde.gcompris.appdata.xml ] 0025 then 0026 echo "ERROR: Run me from the top level GCompris source dir" 0027 exit 1 0028 fi 0029 0030 # Param: ANDROID_ABI DOWNLOAD KIOSK_MODE 0031 f_cmake() 0032 { 0033 if [ $# != 3 ] 0034 then 0035 echo "f_cmake missing parameter" 0036 return 0037 fi 0038 0039 if [ -f CMakeCache.txt ] 0040 then 0041 make clean 0042 rm CMakeCache.txt 0043 rm cmake_install.cmake 0044 rm Makefile 0045 rm -rf CMakeFiles 0046 fi 0047 0048 cmake -DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/Android.cmake \ 0049 -DCMAKE_ANDROID_API=21 \ 0050 -DCMAKE_BUILD_TYPE=Release \ 0051 -DANDROID_ABI=$1 \ 0052 -DCMAKE_FIND_ROOT_PATH=${Qt5_BaseDIR}/${QtTarget}/lib/ \ 0053 -DQt5_DIR=${Qt5_BaseDIR}/${QtTarget}/lib/cmake/Qt5 \ 0054 -Wno-dev \ 0055 -DQML_BOX2D_MODULE=submodule \ 0056 -DWITH_DOWNLOAD=$2 \ 0057 -DWITH_KIOSK_MODE=$3 \ 0058 ${cmake_extra_args} \ 0059 .. 0060 0061 } 0062 0063 # ARM 0064 QtTarget=android_arm64_v8a 0065 builddir=${buildprefix}-${QtTarget} 0066 mkdir -p ${builddir} 0067 cd ${builddir} 0068 0069 # Retrieve the Qt version 0070 if [[ $Qt5_BaseDIR =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then 0071 version=${BASH_REMATCH[0]} 0072 fi 0073 n=${version//[!0-9]/ } 0074 a=(${n//\./ }) 0075 major=${a[0]} 0076 minor=${a[1]} 0077 patch=${a[2]} 0078 0079 # If we use Qt > 5.14, we need to update some variables 0080 if [[ $minor -ge 14 ]]; then 0081 echo "Using Qt5.14 or more"; 0082 cmake_extra_args="-DANDROID_BUILD_ABI_arm64-v8a=ON" 0083 QtTarget=android 0084 fi 0085 0086 f_cmake arm64-v8a ON OFF 0087 make -j 4 0088 make BuildTranslations 0089 make apk_aligned_signed 0090 0091 0092 # Remove extra apk 0093 rm -f android-build/bin/*release-arm64* 0094 rm -f android-build/bin/*release-signed-arm64*