Skip to content

Commit 6056dd8

Browse files
authored
Merge 464c46d into f8b20fd
2 parents f8b20fd + 464c46d commit 6056dd8

File tree

5 files changed

+127
-14
lines changed

5 files changed

+127
-14
lines changed

ci/test/00_setup_env_android.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export RUN_FUNCTIONAL_TESTS=false
1616

1717
export ANDROID_API_LEVEL=28
1818
export ANDROID_BUILD_TOOLS_VERSION=28.0.3
19-
export ANDROID_NDK_VERSION=21.1.6352462
19+
export ANDROID_NDK_VERSION=22.1.7171670
2020
export ANDROID_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
2121
export ANDROID_HOME="${DEPENDS_DIR}/SDKs/android"
2222
export ANDROID_NDK_HOME="${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}"

depends/packages/qt.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $(package)_sha256_hash=1c1b4e33137ca77881074c140d54c3c9747e845a31338cfe8680f171f
77
$(package)_linux_dependencies=freetype fontconfig libxcb libxkbcommon
88
$(package)_qt_libs=corelib network widgets gui plugins testlib
99
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
10-
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
10+
$(package)_patches+= support_new_android_ndks.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
1111
$(package)_patches+= drop_lrelease_dependency.patch no_sdk_version_check.patch
1212
$(package)_patches+= fix_lib_paths.patch fix_android_pch.patch
1313
$(package)_patches+= qtbase-moc-ignore-gcc-macro.patch fix_limits_header.patch
@@ -224,7 +224,7 @@ define $(package)_preprocess_cmds
224224
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
225225
patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
226226
patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch && \
227-
patch -p1 -i $($(package)_patch_dir)/fix_android_qmake_conf.patch && \
227+
patch -p1 -i $($(package)_patch_dir)/support_new_android_ndks.patch && \
228228
patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
229229
patch -p1 -i $($(package)_patch_dir)/fix_android_pch.patch && \
230230
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \

depends/patches/qt/fix_android_pch.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- old/qtbase/mkspecs/common/android-base-head.conf
22
+++ new/qtbase/mkspecs/common/android-base-head.conf
3-
@@ -73,6 +73,6 @@ CROSS_COMPILE = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-
3+
@@ -72,6 +72,6 @@ CROSS_COMPILE = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-
44
QMAKE_PCH_OUTPUT_EXT = .gch
55

66
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}

depends/patches/qt/fix_android_qmake_conf.patch

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
Follow Google's BuildSystemMaintainers doc to support future NDK releases.
2+
3+
Upstream commit:
4+
- Qt 5.14: 9b14950ff600a4ce5a8698b67ab38907c50417f1
5+
6+
--- old/qtbase/mkspecs/android-clang/qmake.conf
7+
+++ new/qtbase/mkspecs/android-clang/qmake.conf
8+
@@ -14,43 +14,33 @@
9+
QMAKE_CC = $$NDK_LLVM_PATH/bin/clang
10+
QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++
11+
12+
+# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md
13+
+
14+
equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
15+
- QMAKE_CFLAGS += -target armv7-none-linux-androideabi
16+
-else: equals(ANDROID_TARGET_ARCH, armeabi): \
17+
- QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
18+
+ QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "")
19+
else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
20+
- QMAKE_CFLAGS += -target aarch64-none-linux-android
21+
+ QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
22+
else: equals(ANDROID_TARGET_ARCH, x86): \
23+
- QMAKE_CFLAGS += -target i686-none-linux-android -mstackrealign
24+
+ QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign
25+
else: equals(ANDROID_TARGET_ARCH, x86_64): \
26+
- QMAKE_CFLAGS += -target x86_64-none-linux-android
27+
+ QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
28+
else: equals(ANDROID_TARGET_ARCH, mips): \
29+
- QMAKE_CFLAGS += -target mipsel-none-linux-android
30+
+ QMAKE_CFLAGS = -target mipsel-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
31+
else: equals(ANDROID_TARGET_ARCH, mips64): \
32+
- QMAKE_CFLAGS += -target mips64el-none-linux-android
33+
-
34+
-QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info
35+
+ QMAKE_CFLAGS = -target mips64el-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
36+
37+
-QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++
38+
-equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a
39+
+QMAKE_CFLAGS += -fno-limit-debug-info
40+
41+
-QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
42+
- -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
43+
- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
44+
- -isystem $$NDK_ROOT/sources/android/support/include \
45+
- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
46+
+QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS
47+
48+
-ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
49+
-
50+
-ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
51+
+ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so
52+
53+
ANDROID_USE_LLVM = true
54+
55+
-exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
56+
- ANDROID_CXX_STL_LIBS = -lc++
57+
-else: \
58+
- ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
59+
-
60+
-QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
61+
+QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
62+
+QMAKE_LIBDIR_POST =
63+
+QMAKE_LFLAGS =
64+
+QMAKE_LIBS_PRIVATE =
65+
+ANDROID_CXX_STL_LIBS =
66+
67+
include(../common/android-base-tail.conf)
68+
69+
--- old/qtbase/mkspecs/common/android-base-head.conf
70+
+++ new/qtbase/mkspecs/common/android-base-head.conf
71+
@@ -64,7 +58,6 @@
72+
}
73+
74+
CONFIG += $$ANDROID_PLATFORM
75+
-QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
76+
77+
ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
78+
79+
--- old/qtbase/mkspecs/common/android-base-tail.conf
80+
+++ new/qtbase/mkspecs/common/android-base-tail.conf
81+
@@ -6,22 +6,17 @@
82+
QMAKE_CFLAGS += -fstack-protector-strong -DANDROID
83+
84+
equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
85+
- QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove
86+
+ QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp
87+
else: equals(ANDROID_TARGET_ARCH, armeabi): \
88+
- QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove
89+
-# -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692
90+
+ QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float
91+
92+
QMAKE_CFLAGS_WARN_ON = -Wall -W
93+
QMAKE_CFLAGS_WARN_OFF =
94+
equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) {
95+
CONFIG += optimize_size
96+
QMAKE_CFLAGS_DEBUG = -g -marm -O0
97+
- equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
98+
- DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
99+
- } else {
100+
- QMAKE_CFLAGS_RELEASE += -mthumb
101+
- QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
102+
- }
103+
+ QMAKE_CFLAGS_RELEASE += -mthumb
104+
+ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
105+
}
106+
107+
QMAKE_CFLAGS_SHLIB = -fPIC
108+
@@ -61,15 +56,12 @@
109+
QMAKE_RANLIB = $${CROSS_COMPILE}ranlib
110+
111+
QMAKE_INCDIR_POST =
112+
-QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR
113+
QMAKE_INCDIR_X11 =
114+
QMAKE_LIBDIR_X11 =
115+
QMAKE_INCDIR_OPENGL =
116+
QMAKE_LIBDIR_OPENGL =
117+
118+
QMAKE_LINK_SHLIB = $$QMAKE_LINK
119+
-QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
120+
-equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64
121+
QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared
122+
QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared
123+
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB

0 commit comments

Comments
 (0)