Skip to content

Commit e274b3f

Browse files
committed
more work on android
1 parent 3dc5c6b commit e274b3f

File tree

6 files changed

+44
-84
lines changed

6 files changed

+44
-84
lines changed

.github/workflows/android.yml

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -213,21 +213,16 @@ jobs:
213213
214214
cmake \
215215
-DCMAKE_BUILD_TYPE=Release \
216-
-D ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \
217-
-D ANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \
218-
-D ANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \
216+
-DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} \
217+
-DANDROID_NDK_VERSION="${ANDROID_NDK_VERSION}" \
218+
-DANDROID_BUILD_TOOLS_VERSION="${ANDROID_BUILD_TOOLS_VERSION}" \
219219
-DVCPKG_HOST_TRIPLET=arm64-osx \
220-
-D VCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \
221-
-D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \
220+
-DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \
221+
-DVCPKG_INSTALL_OPTIONS="--allow-unsupported" \
222222
-DANDROID_ARM_NEON=ON \
223223
-DANDROID_ABI=${{ matrix.ANDROID_ABI }} \
224224
-DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \
225-
-DANDROIDAPI=${ANDROIDAPI} \
226-
-DANDROID_PLATFORM=android-${ANDROIDAPI} \
227-
-DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \
228-
-DANDROID_STL="c++_shared" \
229225
-DQT_ANDROID_SIGN_APK=Yes \
230-
-DQT_ANDROID_SIGN_AAB=Yes \
231226
-DUSE_MM_SERVER_API_KEY=Yes \
232227
-DUSE_KEYCHAIN=No \
233228
-DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \
@@ -259,29 +254,3 @@ jobs:
259254
path: ${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.apk
260255
name: Mergin Maps ${{ env.INPUT_VERSION_CODE }} APK [v7 + v8a]
261256

262-
- name: Build AAB
263-
if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }}
264-
env:
265-
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
266-
ANDROID_NDK_HOST: darwin-x86_64
267-
QT_BASE: ${{ github.workspace }}/Qt/${{ env.QT_VERSION }}
268-
run: |
269-
cd ${{ github.workspace }}/build-Input
270-
ninja aab
271-
272-
echo "AAB:"
273-
find . | grep .aab
274-
275-
- name: Rename AAB artefacts
276-
if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }}
277-
run: |
278-
mv \
279-
${{ github.workspace }}/build-mm/app/android-build/build/outputs/bundle/release/android-build-release.aab \
280-
${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.aab
281-
282-
- name: Upload AAB to Artifacts
283-
if: ${{ github.ref_name == 'master' || github.ref_type == 'tag' }}
284-
uses: actions/upload-artifact@v4
285-
with:
286-
path: ${{ github.workspace }}/merginmaps-${{ env.INPUT_VERSION_CODE }}.aab
287-
name: Mergin Maps ${{ env.INPUT_VERSION_CODE }} AAB

CMakeLists.txt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,10 @@ if (ANDROID_ABI)
1515
# Workaround for bug https://bugreports.qt.io/browse/QTBUG-112885 in Qt6.5.0
1616
# set(QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS TRUE)
1717

18-
if (DEFINED ENV{ANDROIDAPI})
19-
set(ANDROIDAPI $ENV{ANDROIDAPI})
20-
else ()
21-
message(FATAL_ERROR "ANDROIDAPI not defined as env variable")
22-
endif ()
23-
# set(ANDROIDAPI "28")
18+
set(ANDROIDAPI "28") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake
2419

25-
set(ANDROID_PLATFORM "android-${ANDROIDAPI}")
26-
set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}")
20+
set(ANDROID_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake
21+
set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}") # when changed change VCPKG_CMAKE_SYSTEM_VERSION in triplets *-android.cmake
2722
set(ANDROID_STL "c++_shared")
2823

2924
# Target/Minimum API levels for Android, used as Input target properties
@@ -33,6 +28,7 @@ if (ANDROID_ABI)
3328
if (NOT INPUT_ANDROID_NDK_PATH)
3429
message(FATAL_ERROR "Set required environment variable ANDROID_NDK_ROOT.")
3530
endif ()
31+
3632
endif ()
3733

3834
if (IOS)
@@ -41,11 +37,11 @@ if (IOS)
4137
set(PLATFORM "OS")
4238
set(ENABLE_ARC FALSE)
4339
set(ENABLE_BITCODE FALSE)
44-
set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") #when changed change triplets arm64-ios.cmake
40+
set(CMAKE_OSX_DEPLOYMENT_TARGET "16.0") # when changed change triplets arm64-ios.cmake
4541
endif ()
4642

4743
if (APPLE AND NOT IOS)
48-
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") #when changed change also triplets x64/arm64-osx.cmake
44+
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") # when changed change also triplets *-osx.cmake
4945
endif ()
5046

5147
# ########################################################################################

INSTALL.md

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -268,46 +268,42 @@ For building ABIs see https://www.qt.io/blog/android-multi-abi-builds-are-back
268268

269269

270270
```
271-
ANDROIDAPI=24
272271
PATH=+/opt/homebrew/bin
273272
PATH=+/opt/homebrew/Cellar/flex/2.6.4_2/bin
274273
PATH=+/opt/homebrew/Cellar/bison/3.8.2/bin
275274
PATH=+/Users/peterpetrik/Projects/quick/build/vcpkg
276-
DEPLOYMENT_TARGET=11.0
277275
ANDROID_NDK_HOME=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125
278276
```
279277

280278
You can continue with configure step:
281279
```
282280
cmake \
283281
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
284-
-DCMAKE_BUILD_TYPE
285282
-DANDROID_ABI=arm64-v8a \
283+
-DVCPKG_HOST_TRIPLET=arm64-osx \
284+
-DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \
286285
-DANDROID_NDK=/Users/peterpetrik/Library/Android/sdk/ndk/26.1.10909125 \
287286
-DANDROID_PLATFORM=android-24 \
288287
-DANDROID_SDK_ROOT=/Users/peterpetrik/Library/Android/sdk \
289288
-DANDROID_NDK_VERSION="r26" \
290289
-DANDROID_BUILD_TOOLS_VERSION="34.0.0" \
291-
-DVCPKG_HOST_TRIPLET=arm64-osx \
292-
-DVCPKG_TARGET_TRIPLET="${{ matrix.triplet }}" \
293-
-D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \
294-
-DANDROID_ARM_NEON=ON \
295-
-DANDROID_ABI=${{ matrix.ANDROID_ABI }} \
296-
-DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \
297-
-DANDROIDAPI=${ANDROIDAPI} \
298-
-DANDROID_PLATFORM=android-${ANDROIDAPI} \
299-
-DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \
300-
-DANDROID_STL="c++_shared" \
301-
-DQT_ANDROID_SIGN_APK=Yes \
302-
-DQT_ANDROID_SIGN_AAB=Yes \
303-
-DUSE_MM_SERVER_API_KEY=Yes \
304-
-DUSE_KEYCHAIN=No \
305-
-DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \
306-
-GNinja \
307-
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
308-
-S ../mobile \
309-
-B ./
310-
290+
-D VCPKG_INSTALL_OPTIONS="--allow-unsupported" \
291+
-DANDROID_ARM_NEON=ON \
292+
-DANDROID_ABI=${{ matrix.ANDROID_ABI }} \
293+
-DQT_ANDROID_ABIS=${{ matrix.ANDROID_ABI }} \
294+
-DANDROIDAPI=${ANDROIDAPI} \
295+
-DANDROID_PLATFORM=android-${ANDROIDAPI} \
296+
-DANDROID_NDK_PLATFORM=android-${ANDROIDAPI} \
297+
-DANDROID_STL="c++_shared" \
298+
-DQT_ANDROID_SIGN_APK=Yes \
299+
-DQT_ANDROID_SIGN_AAB=Yes \
300+
-DUSE_MM_SERVER_API_KEY=Yes \
301+
-DUSE_KEYCHAIN=No \
302+
-DCMAKE_TOOLCHAIN_FILE:PATH="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" \
303+
-GNinja \
304+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
305+
-S ../mobile \
306+
-B ./
311307
```
312308

313309
## 4.3. Android on Windows

vcpkg.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"qtconnectivity",
8282
"qtdeclarative",
8383
"qtimageformats",
84+
"qtnetworkauth",
8485
"qtlocation",
8586
{
8687
"name": "qtmultimedia",

vcpkg/triplets/arm-android.cmake

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ set(VCPKG_BUILD_TYPE release)
77
# Note to myself and others: this is correct even on macOS host
88
set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi")
99

10-
1110
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON)
1211

13-
if(DEFINED ENV{ANDROIDAPI})
14-
set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI})
15-
else()
16-
message(FATAL_ERROR "ANDROIDAPI not defined as env variable")
17-
endif()
18-
12+
set(ANDROIDAPI "28") # when changed change CMakeLists.cmake
13+
set(ANDROID_PLATFORM "android-${ANDROIDAPI}")
14+
set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}")
15+
set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}")
16+
set(ANDROID_STL "c++_shared")
17+
1918
set(VCPKG_CXX_FLAGS "-fstack-protector-strong")
2019
set(VCPKG_C_FLAGS "-fstack-protector-strong")
2120
set(VCPKG_LINKER_FLAGS "-lunwind -Wl,--exclude-libs=libunwind.a")

vcpkg/triplets/arm64-android.cmake

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@ set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android")
99

1010
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a)
1111

12-
set(VCPKG_CXX_FLAGS "-fstack-protector-strong")
13-
set(VCPKG_C_FLAGS "-fstack-protector-strong")
14-
15-
if(DEFINED ENV{ANDROIDAPI})
16-
set(VCPKG_CMAKE_SYSTEM_VERSION $ENV{ANDROIDAPI})
17-
else()
18-
message(FATAL_ERROR "$ENV{ANDROIDAPI} not defined as env variable")
19-
endif()
12+
set(ANDROIDAPI "28") # when changed change CMakeLists.cmake
13+
set(ANDROID_PLATFORM "android-${ANDROIDAPI}")
14+
set(ANDROID_NDK_PLATFORM "android-${ANDROIDAPI}")
15+
set(VCPKG_CMAKE_SYSTEM_VERSION "${ANDROIDAPI}")
16+
set(ANDROID_STL "c++_shared")
2017

18+
set(VCPKG_CXX_FLAGS "-fstack-protector-strong")
19+
set(VCPKG_C_FLAGS "-fstack-protector-strong")

0 commit comments

Comments
 (0)