File indexing completed on 2024-04-14 03:40:10

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=16 \
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_armv7
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_armeabi-v7a=ON"
0083     QtTarget=android
0084 fi
0085 
0086 f_cmake armeabi-v7a ON OFF
0087 make -j 4
0088 make apk_aligned_signed
0089 
0090 # Remove extra apk
0091 rm -f android-build/bin/*release-armeabi*
0092 rm -f android-build/bin/*release-signed-armeabi*