aboutsummaryrefslogtreecommitdiff
path: root/depends/patches/qt/support_new_android_ndks.patch
blob: 85c8ae2132af5ffc84c2269b9201d37389a14014 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Follow Google's BuildSystemMaintainers doc to support future NDK releases.

Upstream commit:
 - Qt 5.14: 9b14950ff600a4ce5a8698b67ab38907c50417f1

--- old/qtbase/mkspecs/android-clang/qmake.conf
+++ new/qtbase/mkspecs/android-clang/qmake.conf
@@ -14,43 +14,29 @@
 QMAKE_CC      = $$NDK_LLVM_PATH/bin/clang
 QMAKE_CXX     = $$NDK_LLVM_PATH/bin/clang++
 
+# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md
+
 equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
-    QMAKE_CFLAGS += -target armv7-none-linux-androideabi
-else: equals(ANDROID_TARGET_ARCH, armeabi): \
-    QMAKE_CFLAGS += -target armv5te-none-linux-androideabi
+    QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "")
 else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \
-    QMAKE_CFLAGS += -target aarch64-none-linux-android
+    QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
 else: equals(ANDROID_TARGET_ARCH, x86): \
-    QMAKE_CFLAGS += -target i686-none-linux-android -mstackrealign
+    QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign
 else: equals(ANDROID_TARGET_ARCH, x86_64): \
-    QMAKE_CFLAGS += -target x86_64-none-linux-android
-else: equals(ANDROID_TARGET_ARCH, mips): \
-    QMAKE_CFLAGS += -target mipsel-none-linux-android
-else: equals(ANDROID_TARGET_ARCH, mips64): \
-    QMAKE_CFLAGS += -target mips64el-none-linux-android
-
-QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info
-
-QMAKE_LINK    = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++
-equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a
-
-QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
-                -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
-                -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
-                -isystem $$NDK_ROOT/sources/android/support/include \
-                -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
+    QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "")
 
-ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
+QMAKE_CFLAGS += -fno-limit-debug-info
 
-ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
+QMAKE_LINK    = $$QMAKE_CXX $$QMAKE_CFLAGS
 
-ANDROID_USE_LLVM = true
+ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so
 
-exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
-    ANDROID_CXX_STL_LIBS = -lc++
-else: \
-    ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
+ANDROID_USE_LLVM = true
 
-QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
+QMAKE_CFLAGS_OPTIMIZE_SIZE  = -Oz
+QMAKE_LIBDIR_POST           =
+QMAKE_LFLAGS                =
+QMAKE_LIBS_PRIVATE          =
+ANDROID_CXX_STL_LIBS        =
 
 include(../common/android-base-tail.conf)

--- old/qtbase/mkspecs/common/android-base-head.conf
+++ new/qtbase/mkspecs/common/android-base-head.conf
@@ -64,7 +58,6 @@
 }
 
 CONFIG += $$ANDROID_PLATFORM
-QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "")
 
 ANDROID_PLATFORM_ROOT_PATH  = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/
 
--- old/qtbase/mkspecs/common/android-base-tail.conf
+++ new/qtbase/mkspecs/common/android-base-tail.conf
@@ -6,22 +6,17 @@
 QMAKE_CFLAGS += -fstack-protector-strong -DANDROID
 
 equals(ANDROID_TARGET_ARCH, armeabi-v7a): \
-    QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove
+    QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp
 else: equals(ANDROID_TARGET_ARCH, armeabi): \
-    QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove
-# -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692
+    QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float
 
 QMAKE_CFLAGS_WARN_ON    = -Wall -W
 QMAKE_CFLAGS_WARN_OFF   =
 equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) {
     CONFIG += optimize_size
     QMAKE_CFLAGS_DEBUG                     = -g -marm -O0
-    equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) {
-        DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND
-    } else {
-        QMAKE_CFLAGS_RELEASE += -mthumb
-        QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
-    }
+    QMAKE_CFLAGS_RELEASE += -mthumb
+    QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb
 }
 
 QMAKE_CFLAGS_SHLIB      = -fPIC
@@ -61,15 +56,12 @@
 QMAKE_RANLIB            = $${CROSS_COMPILE}ranlib
 
 QMAKE_INCDIR_POST       =
-QMAKE_LIBDIR_POST       = $$ANDROID_SOURCES_CXX_STL_LIBDIR
 QMAKE_INCDIR_X11        =
 QMAKE_LIBDIR_X11        =
 QMAKE_INCDIR_OPENGL     =
 QMAKE_LIBDIR_OPENGL     =
 
 QMAKE_LINK_SHLIB        = $$QMAKE_LINK
-QMAKE_LFLAGS            = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH
-equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64
 QMAKE_LFLAGS_APP        = -Wl,--no-undefined -Wl,-z,noexecstack -shared
 QMAKE_LFLAGS_SHLIB      = -Wl,--no-undefined -Wl,-z,noexecstack -shared
 QMAKE_LFLAGS_PLUGIN     = $$QMAKE_LFLAGS_SHLIB