diff --git a/CMakeLists.txt b/CMakeLists.txt index 1043c0c0fb53c6b9e197b51a86996687ffea2d87..d51fb21527458d3d8a21bc2b5adbdf15df7c981c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,19 @@ cmake_minimum_required(VERSION 3.14) +set(ANDROID_VERSION_NAME "0.7") +set(ANDROID_VERSION_CODE "7") + +if(OVERRIDE_VERSION_NAME) + set(ANDROID_VERSION_NAME "${OVERRIDE_VERSION_NAME}") +endif() +if(OVERRIDE_VERSION_CODE) + set(ANDROID_VERSION_CODE "${OVERRIDE_VERSION_CODE}") +endif() + project(RadarApp - VERSION 0.6 - DESCRIPTION "Radar Squat Net Mobile App" - LANGUAGES CXX) + VERSION ${ANDROID_VERSION_NAME} + DESCRIPTION "Radar Squat Net Mobile App" + LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -136,9 +146,12 @@ if(ANDROID) Qt5::Sql) if (OLD_QT) + configure_file("${CMAKE_CURRENT_LIST_DIR}/android-qt5.12/AndroidManifest.xml.in" + "${CMAKE_CURRENT_LIST_DIR}/android-qt5.12/AndroidManifest.xml" + @ONLY) add_qt_android_apk(radar-app_apk RadarApp NAME "Radar App" - VERSION_CODE 1 + VERSION_CODE ${ANDROID_VERSION_CODE} PACKAGE_NAME "org.radar.app" PACKAGE_SOURCES "${CMAKE_CURRENT_LIST_DIR}/android-qt5.12" DEPENDS "${ANDROID_EXTRA_LIBS}" diff --git a/README.md b/README.md index 735c9cc4acb6b4bea206dd08eb8aad0e7795dcaa..68d8655465d1f00f0b37c2497706680824157b4a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Application author is not responsible for any contents published at https://rada Needed tools: * Qt 5.12 for android_armv7 arch [download.qt.io/official_releases/qt/5.12/](https://download.qt.io/official_releases/qt/5.12/) -* CMake 3.10+ https://cmake.org/download/ +* CMake 3.14+ https://cmake.org/download/ * Android NDK 19+ https://developer.android.com/studio * Android SDK 21+ https://developer.android.com/studio * GNU Make https://www.gnu.org/software/make/ diff --git a/android-new/AndroidManifest.xml b/android-new/AndroidManifest.xml index f39a1f7e64ad7767fe2c10adbcaa45cfca14a3a9..ddc81e34c2871eef891f9c8be65c2e1e9b8b411a 100644 --- a/android-new/AndroidManifest.xml +++ b/android-new/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6" android:versionCode="6" android:installLocation="auto"> +<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.7" android:versionCode="7" android:installLocation="auto"> <!--<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28"/> --> <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. diff --git a/android-qt5.12/AndroidManifest.xml b/android-qt5.12/AndroidManifest.xml.in similarity index 97% rename from android-qt5.12/AndroidManifest.xml rename to android-qt5.12/AndroidManifest.xml.in index 6b4d518af8d6d27b167afd35a08803818f4a7f6f..004cd18bf8052234d005459a8684be17e1399f56 100644 --- a/android-qt5.12/AndroidManifest.xml +++ b/android-qt5.12/AndroidManifest.xml.in @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6" android:versionCode="6" android:installLocation="auto"> +<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@ANDROID_VERSION_NAME@" android:versionCode="@ANDROID_VERSION_CODE@" android:installLocation="auto"> <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28"/> <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index f39a1f7e64ad7767fe2c10adbcaa45cfca14a3a9..ddc81e34c2871eef891f9c8be65c2e1e9b8b411a 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.6" android:versionCode="6" android:installLocation="auto"> +<manifest package="org.radar.app" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.7" android:versionCode="7" android:installLocation="auto"> <!--<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28"/> --> <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. diff --git a/build-android-debug64.sh b/build-android-debug64.sh index 576bdecb49287bc0a47cdccd7b95fe3be13da78b..1a2febe4aaf3d65e3a05f510ea83481a8d89dd08 100755 --- a/build-android-debug64.sh +++ b/build-android-debug64.sh @@ -1,7 +1,7 @@ #!/bin/bash -export ANDROID_NDK=/opt/Android/Sdk/ndk/19.2.5345600 -export ANDROID_SDK=/opt/Android/Sdk -export QT_BASE=/opt/qt/5.12.9/android_arm64_v8a +#export ANDROID_NDK=/opt/Android/Sdk/ndk/19.2.5345600 +#export ANDROID_SDK=/opt/Android/Sdk +#export QT_BASE=/opt/qt/5.12.9/android_arm64_v8a cmake -DQT_ANDROID_BUILD_TYPE="--debug" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DCMAKE_PREFIX_PATH:PATH="${QT_BASE}/lib" -DCMAKE_FIND_ROOT_PATH="${QT_BASE}/" -DDOWNLOAD_URL="https://0xacab.org/xandyx/radar-app/-/jobs/artifacts/master/raw/build-android/radar-app-arm46-v8a/build/outputs/apk/debug/radar-app-arm64-v8a-debug.apk?job=assembleDebug" ../radar-app diff --git a/fdroiddata/metadata/org.radar.app.yml b/fdroiddata/metadata/org.radar.app.yml index 73b94e21d54fc0c86f10b7fa673491e79863f03e..c71b5c839a5d82bbd756daaaf6e7b966aad7cdec 100644 --- a/fdroiddata/metadata/org.radar.app.yml +++ b/fdroiddata/metadata/org.radar.app.yml @@ -423,20 +423,235 @@ Builds: - popd ndk: r19c + - versionName: '0.7' + versionCode: 70001 + commit: v0.7 + timeout: 9800 + submodules: true + sudo: + - apt-get update + - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 build-essential + cmake make python3 python-is-python3 python3-setuptools python3-qrcode fonttools + python3-pyaxmlparser + - apt-get remove openjdk-11-jdk-headless openjdk-11-jre-headless + - echo "deb http://archive.debian.org/debian/ stretch main" > /etc/apt/sources.list.d/stretch.list + - apt-get --quiet update --yes --yes + - apt-get install -y -t stretch openjdk-8-jdk-headless + output: build-android/RadarApp-armeabi-v7a/build/outputs/apk/release/RadarApp-armeabi-v7a-release-unsigned.apk + srclibs: + - OpenSSL@OpenSSL_1_1_1w + - Qt5@v5.12.12 + prebuild: + - $$SDK$$/tools/bin/sdkmanager 'platforms;android-28' > /dev/null + - cd ../srclib/Qt5 + - perl ./init-repository -f --module-subset=essential,qtandroidextras,qtdeclarative,qtlocation,qtquickcontrols2,qtgraphicaleffects + scandelete: + - android_openssl/ + build: + - export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") + - export PATH=${JAVA_HOME}/bin:${PATH} + - export OPENSSL_INSTALL_DIR=$(readlink -f ${PWD}/../srclib)/install-openssl + - export QT_BUILD=$(readlink -f ${PWD}/../srclib)/build-qt + - export PREFIX=$(readlink -f ${PWD}/../srclib)/install-qt + - export QT_TARGET_ARCH=android_armv7 + - rm -rf $PREFIX $QT_BUILD $OPENSSL_INSTALL_DIR + - mkdir $PREFIX $QT_BUILD $OPENSSL_INSTALL_DIR + - export CMAKE_PREFIX_PATH=${PREFIX}/lib/cmake + - export QT_QMAKE_EXECUTABLE=${PREFIX}/bin/qmake + - export ANDROID_NDK_ROOT=$$NDK$$ + - export ANDROID_NDK_HOME=$$NDK$$ + - export ANDROID_SDK_ROOT=$$SDK$$ + - export ANDROID_HOME=$$SDK$$ + - export ANDROID_NDK_VERSION="19.2.5345600" + - export ANDROID_ABI=armeabi-v7a + - export DOWNLOAD_URL="https://f-droid.org/packages/org.radar.app/" + - export ANDROID_NDK_PLATFORM=android-16 + - export ANDROID_API_VERSION=android-28 + - export ANDROID_PLATFORM_LEVEL="16" + - echo "1. Generating QR Code for URL='${DOWNLOAD_URL}' ..." + - python3-qr "${DOWNLOAD_URL}" > images/qrcode-apk.png + - echo "2. Building OpenSSL..." + - pushd $$OpenSSL$$ + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH + ./Configure shared android-arm -D__ANDROID_API__=16 > /tmp/openssl.configure.log + 2>&1 + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH + make -s -j $(( $(nproc) + 1 )) SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so build_libs + > /tmp/openssl.make.log 2>&1 + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH + llvm-strip --strip-all libcrypto_1_1.so + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH + llvm-strip --strip-all libssl_1_1.so + - cp libcrypto_1_1.so libssl_1_1.so "${OPENSSL_INSTALL_DIR}"/ + - cd ${OPENSSL_INSTALL_DIR} + - ln -s libcrypto_1_1.so libcrypto.so + - ln -s libssl_1_1.so libssl.so + - popd + - echo "3. Configuring Qt..." + - pushd ${QT_BUILD} + - $$Qt5$$/configure -xplatform android-clang --disable-rpath -opensource -confirm-license + -silent -prefix $PREFIX -release -nomake tests -nomake examples -no-sql-mysql + -no-widgets -no-dbus -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 + -openssl -I $$OpenSSL$$/include -android-sdk $$SDK$$ -android-ndk $$NDK$$ + -android-ndk-host linux-x86_64 -android-arch ${ANDROID_ABI} -android-ndk-platform + android-16 -skip qtwebengine -skip qtgamepad -skip qtwebchannel -skip qtwebview + -skip qtwebsockets -skip qtwebglplugin -skip qtmultimedia -skip qtserialport + -skip qttranslations -skip qtnetworkauth -skip qt3d -skip qtsensors -skip + qtwayland -skip qtxmlpatterns -skip qtscxml -skip qtscript -skip qtconnectivity + -skip qttools -no-feature-quickcontrols2-fusion -no-feature-quickcontrols2-imagine + -no-feature-quickcontrols2-universal -feature-quickcontrols2-material -no-feature-geoservices_mapbox + -no-feature-geoservices_mapboxgl -no-feature-geoservices_here -no-feature-geoservices_itemsoverlay + -no-feature-geoservices_esri -no-feature-geoservices_osm -no-feature-gif -no-feature-ico + -no-feature-jpeg -no-feature-testlib -no-feature-xml -no-libjpeg -no-feature-debug + -no-feature-qml-debug -no-feature-qml-profiler -no-feature-testlib -no-feature-itemmodeltester + > /tmp/configure.log 2>&1 || tail -1000 /tmp/configure.log + - echo "4. Building Qt..." + - make -s > /tmp/qt_make.log 2>&1 || tail -1000 /tmp/qt_make.log + - make -s install > /tmp/qt_make_install.log 2>&1 || tail -1000 /tmp/qt_make_install.log + - popd + - pushd $$OpenSSL$$ + - git clean -dffx + - popd + - pushd "${OPENSSL_INSTALL_DIR}" + - rm libssl.so libcrypto.so + - popd + - echo "5. Configuring Radar-App..." + - install -d build-android + - pushd build-android + - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$NDK/build/cmake/android.toolchain.cmake + -DOVERRIDE_VERSION_NAME:STRING="$$VERSION$$" -DOVERRIDE_VERSION_CODE:STRING="$$VERCODE$$" + -DCMAKE_FIND_ROOT_PATH:PATH="${PREFIX}" -DCMAKE_PREFIX_PATH:PATH="${PREFIX}/lib/cmake" + -DDOWNLOAD_URL="${DOWNLOAD_URL}" -DANDROID_ABI:STRING=${ANDROID_ABI} -DANDROID_NATIVE_API_LEVEL:STRING="$ANDROID_PLATFORM_LEVEL" + -DANDROID_PLATFORM="${ANDROID_PLATFORM_LEVEL}" -DANDROID_PLATFORM_LEVEL="${ANDROID_PLATFORM_LEVEL}" + -DANDROID_NDK:PATH=$NDK -DANDROID_STL:STRING=c++_shared -DANDROID_SSL_LIBS="${OPENSSL_INSTALL_DIR}/libcrypto_1_1.so;${OPENSSL_INSTALL_DIR}/libssl_1_1.so" + .. + - echo "6. Building Radar-App..." + - cmake --build . + - popd + ndk: r19c + + - versionName: '0.7' + versionCode: 70002 + commit: v0.7 + timeout: 9800 + submodules: true + sudo: + - apt-get update + - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 build-essential + cmake make python3 python-is-python3 python3-setuptools python3-qrcode fonttools + python3-pyaxmlparser + - apt-get remove openjdk-11-jdk-headless openjdk-11-jre-headless + - echo "deb http://archive.debian.org/debian/ stretch main" > /etc/apt/sources.list.d/stretch.list + - apt-get --quiet update --yes --yes + - apt-get install -y -t stretch openjdk-8-jdk-headless + output: build-android/RadarApp-arm64-v8a/build/outputs/apk/release/RadarApp-arm64-v8a-release-unsigned.apk + srclibs: + - OpenSSL@OpenSSL_1_1_1w + - Qt5@v5.12.12 + prebuild: + - $$SDK$$/tools/bin/sdkmanager 'platforms;android-28' > /dev/null + - cd ../srclib/Qt5 + - perl ./init-repository -f --module-subset=essential,qtandroidextras,qtdeclarative,qtlocation,qtquickcontrols2,qtgraphicaleffects + scandelete: + - android_openssl/ + build: + - export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") + - export PATH=${JAVA_HOME}/bin:${PATH} + - export OPENSSL_INSTALL_DIR=$(readlink -f ${PWD}/../srclib)/install-openssl + - export QT_BUILD=$(readlink -f ${PWD}/../srclib)/build-qt + - export PREFIX=$(readlink -f ${PWD}/../srclib)/install-qt + - export QT_TARGET_ARCH=arm64 + - rm -rf $PREFIX $QT_BUILD $OPENSSL_INSTALL_DIR + - mkdir $PREFIX $QT_BUILD $OPENSSL_INSTALL_DIR + - export CMAKE_PREFIX_PATH=${PREFIX}/lib/cmake + - export QT_QMAKE_EXECUTABLE=${PREFIX}/bin/qmake + - export ANDROID_NDK_ROOT=$$NDK$$ + - export ANDROID_NDK_HOME=$$NDK$$ + - export ANDROID_SDK_ROOT=$$SDK$$ + - export ANDROID_HOME=$$SDK$$ + - export ANDROID_NDK_VERSION="19.2.5345600" + - export ANDROID_ABI=arm64-v8a + - export DOWNLOAD_URL="https://f-droid.org/packages/org.radar.app/" + - export ANDROID_NDK_PLATFORM=android-21 + - export ANDROID_API_VERSION=android-28 + - export ANDROID_PLATFORM_LEVEL="16" + - echo "1. Generating QR Code for URL='${DOWNLOAD_URL}' ..." + - python3-qr "${DOWNLOAD_URL}" > images/qrcode-apk.png + - echo "2. Building OpenSSL..." + - pushd $$OpenSSL$$ + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:$PATH + ./Configure shared android-arm64 -D__ANDROID_API__=21 > /tmp/openssl.configure.log + 2>&1 + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:$PATH + make -s -j $(( $(nproc) + 1 )) SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so build_libs + > /tmp/openssl.make.log 2>&1 + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:$PATH + llvm-strip --strip-all libcrypto_1_1.so + - PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:$PATH + llvm-strip --strip-all libssl_1_1.so + - cp libcrypto_1_1.so libssl_1_1.so "${OPENSSL_INSTALL_DIR}"/ + - cd ${OPENSSL_INSTALL_DIR} + - ln -s libcrypto_1_1.so libcrypto.so + - ln -s libssl_1_1.so libssl.so + - popd + - echo "3. Configuring Qt..." + - pushd ${QT_BUILD} + - $$Qt5$$/configure -xplatform android-clang --disable-rpath -opensource -confirm-license + -silent -prefix $PREFIX -release -nomake tests -nomake examples -no-sql-mysql + -no-widgets -no-dbus -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 + -openssl -I $$OpenSSL$$/include -android-sdk $$SDK$$ -android-ndk $$NDK$$ + -android-ndk-host linux-x86_64 -android-arch ${ANDROID_ABI} -android-ndk-platform + android-21 -skip qtwebengine -skip qtgamepad -skip qtwebchannel -skip qtwebview + -skip qtwebsockets -skip qtwebglplugin -skip qtmultimedia -skip qtserialport + -skip qttranslations -skip qtnetworkauth -skip qt3d -skip qtsensors -skip + qtwayland -skip qtxmlpatterns -skip qtscxml -skip qtscript -skip qtconnectivity + -skip qttools -no-feature-quickcontrols2-fusion -no-feature-quickcontrols2-imagine + -no-feature-quickcontrols2-universal -feature-quickcontrols2-material -no-feature-geoservices_mapbox + -no-feature-geoservices_mapboxgl -no-feature-geoservices_here -no-feature-geoservices_itemsoverlay + -no-feature-geoservices_esri -no-feature-geoservices_osm -no-feature-gif -no-feature-ico + -no-feature-jpeg -no-feature-testlib -no-feature-xml -no-libjpeg -no-feature-debug + -no-feature-qml-debug -no-feature-qml-profiler -no-feature-testlib -no-feature-itemmodeltester + > /tmp/configure.log 2>&1 || tail -1000 /tmp/configure.log + - echo "4. Building Qt..." + - make -s > /tmp/qt_make.log 2>&1 || tail -1000 /tmp/qt_make.log + - make -s install > /tmp/qt_make_install.log 2>&1 || tail -1000 /tmp/qt_make_install.log + - popd + - pushd $$OpenSSL$$ + - git clean -dffx + - popd + - pushd "${OPENSSL_INSTALL_DIR}" + - rm libssl.so libcrypto.so + - popd + - echo "5. Configuring Radar-App..." + - install -d build-android + - pushd build-android + - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$NDK/build/cmake/android.toolchain.cmake + -DOVERRIDE_VERSION_NAME:STRING="$$VERSION$$" -DOVERRIDE_VERSION_CODE:STRING="$$VERCODE$$" + -DCMAKE_FIND_ROOT_PATH:PATH="${PREFIX}" -DCMAKE_PREFIX_PATH:PATH="${PREFIX}/lib/cmake" + -DDOWNLOAD_URL="${DOWNLOAD_URL}" -DANDROID_ABI:STRING=${ANDROID_ABI} -DANDROID_NATIVE_API_LEVEL:STRING="$ANDROID_PLATFORM_LEVEL" + -DANDROID_PLATFORM="${ANDROID_PLATFORM_LEVEL}" -DANDROID_PLATFORM_LEVEL="${ANDROID_PLATFORM_LEVEL}" + -DANDROID_NDK:PATH=$NDK -DANDROID_STL:STRING=c++_shared -DANDROID_SSL_LIBS="${OPENSSL_INSTALL_DIR}/libcrypto_1_1.so;${OPENSSL_INSTALL_DIR}/libssl_1_1.so" + .. + - echo "6. Building Radar-App..." + - cmake --build . + - popd + ndk: r19c + MaintainerNotes: |- - Build process includes the following steps: - 1. Generation of a picture with QR-code of APK download URL. - 2. Configuration and building of OpenSSL libraries libssl and libcrypto with Android NDK. - Suffix '_1_1' (SHLIB_EXT=_1_1.so) is added, beacause it is required for Qt to load APK-provided SSL libs instead of ones from Android installation. - Built libraries are processed with llvm-strip to remove unneeded symbols from SO-libs. - 3. Configuration of Qt library to build it with Android NDK Toolchain, skipping modules and features that application does not use. - Qt modules, needed for App: qtdeclarative,qtandroidextras,qtlocation,qtquickcontrols2,qtgraphicaleffects. They are being loaded in prebuild section. - -android-ndk-platform is set to android-16 in order to support older devices running Android 4.1. - 4. Build and installation of Qt library. Build takes more than 1 hour on CI. - 5. Configuration of radar-app using CMake. Note that ANDROID_SSL_LIBS must be specified in order 'libcrypto_1_1.so;libssl_1_1.so' to get them loaded properly in the runtime. - 6. On the final stage, build is being done. Submodule qt-android-cmake [https://github.com/LaurentGomila/qt-android-cmake] has allowed us to configure APK build using CMake. + Build process includes the following steps: + 1. Generation of a picture with QR-code of APK download URL. + 2. Configuration and building of OpenSSL libraries libssl and libcrypto with Android NDK. + Suffix '_1_1' (SHLIB_EXT=_1_1.so) is added, beacause it is required for Qt to load APK-provided SSL libs instead of ones from Android installation. + Built libraries are processed with llvm-strip to remove unneeded symbols from SO-libs. + 3. Configuration of Qt library to build it with Android NDK Toolchain, skipping modules and features that application does not use. + Qt modules, needed for App: qtdeclarative,qtandroidextras,qtlocation,qtquickcontrols2,qtgraphicaleffects. They are being loaded in prebuild section. + -android-ndk-platform is set to android-16 in order to support older devices running Android 4.1. + 4. Build and installation of Qt library. Build takes more than 1 hour on CI. + 5. Configuration of radar-app using CMake. Note that ANDROID_SSL_LIBS must be specified in order 'libcrypto_1_1.so;libssl_1_1.so' to get them loaded properly in the runtime. + 6. On the final stage, build is being done. Submodule qt-android-cmake [https://github.com/LaurentGomila/qt-android-cmake] has allowed us to configure APK build using CMake. AutoUpdateMode: None UpdateCheckMode: Tags -CurrentVersion: '0.6' -CurrentVersionCode: 6 +CurrentVersion: '0.7' +CurrentVersionCode: 70002 +