summaryrefslogtreecommitdiffstats
path: root/src/qtbase-1-fixes.patch
blob: 029951f17f747759b05eb9efa619c977024dc7b4 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
This file is part of MXE.
See index.html for further information.

Contains ad hoc patches for cross building.

From 9e13228f4af09b93f6cd123635784e4988694ac2 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 6 Aug 2015 23:35:08 +0200
Subject: [PATCH 1/8] fix qwindows plugin linking with system-freetype (MXE
 specific)

Change-Id: I8783e3ab2d19011b083dd3c471107298a17293c4

diff --git a/src/3rdparty/freetype_dependency.pri b/src/3rdparty/freetype_dependency.pri
index 39280de..e152b0d 100644
--- a/src/3rdparty/freetype_dependency.pri
+++ b/src/3rdparty/freetype_dependency.pri
@@ -4,4 +4,5 @@ contains(QT_CONFIG, freetype) {
 } else:contains(QT_CONFIG, system-freetype) {
     # pull in the proper freetype2 include directory
     include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
+    win32:shared:LIBS_PRIVATE += -lfreetype
 }
-- 
2.7.4


From 2d7638835de6b5f16cf64e6cf4eede1f8a9ccedb Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 21 Jun 2014 13:12:49 +0200
Subject: [PATCH 2/8] use pkg-config for harfbuzz (MXE specific)

Change-Id: Id4e4c37d68b63c9f480d72a561d95d4d2a5ded50

diff --git a/config.tests/unix/harfbuzz/harfbuzz.pro b/config.tests/unix/harfbuzz/harfbuzz.pro
index 32edd6e..a7f2c28 100644
--- a/config.tests/unix/harfbuzz/harfbuzz.pro
+++ b/config.tests/unix/harfbuzz/harfbuzz.pro
@@ -1,3 +1,4 @@
 SOURCES = harfbuzz.cpp
 CONFIG -= qt dylib
-LIBS += -lharfbuzz
+CONFIG += link_pkgconfig
+PKGCONFIG += harfbuzz
diff --git a/src/3rdparty/harfbuzz_dependency.pri b/src/3rdparty/harfbuzz_dependency.pri
index 7443368..c24e684 100644
--- a/src/3rdparty/harfbuzz_dependency.pri
+++ b/src/3rdparty/harfbuzz_dependency.pri
@@ -2,5 +2,6 @@ contains(QT_CONFIG, harfbuzz) {
     INCLUDEPATH += $$PWD/harfbuzz-ng/include
     LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix()
 } else:contains(QT_CONFIG, system-harfbuzz) {
-    LIBS_PRIVATE += -lharfbuzz
+    CONFIG += link_pkgconfig
+    PKGCONFIG += harfbuzz
 }
-- 
2.7.4


From 172b7bf1f113b1ea443a64ad4f9a2ecda6ee06e2 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 8 Dec 2014 14:15:12 +0100
Subject: [PATCH 3/8] fix oci config test on windows

Change-Id: If1ce2241682259ca495b0ba68bf18410f8548922

diff --git a/config.tests/unix/oci/oci.pro b/config.tests/unix/oci/oci.pro
index 3ffda1d..39b6f3759 100644
--- a/config.tests/unix/oci/oci.pro
+++ b/config.tests/unix/oci/oci.pro
@@ -1,3 +1,3 @@
 SOURCES = oci.cpp
 CONFIG -= qt dylib
-LIBS += -lclntsh
+!win32:LIBS += -lclntsh
-- 
2.7.4


From 7756e4e14ae5b33fea04416bd4f238ca1dfe4d30 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 6 Aug 2015 13:24:56 +0200
Subject: [PATCH 4/8] configure: don't set QT_NO_SYSTEMSEMAPHORE for Windows

Change-Id: I53c110ef40e3d14cc49fa23aa5d294611cac2ffa

diff --git a/configure b/configure
index 43b55f0..de2c3ec 100755
--- a/configure
+++ b/configure
@@ -4656,7 +4656,7 @@ fi
 [ "$XPLATFORM_ANDROID" = "yes" ] && QMakeVar add styles "android"
 
 # check IPC support
-if ! compileTest unix/ipc_sysv "ipc_sysv" ; then
+if [ "$XPLATFORM_MINGW" = "no" ] && ! compileTest unix/ipc_sysv "ipc_sysv" ; then
     # SYSV IPC is not supported - check POSIX IPC
     if compileTest unix/ipc_posix "ipc_posix" ; then
         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_POSIX_IPC"
-- 
2.7.4


From e40fdb058ec440d14e3037c530f8181561622f50 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Tue, 6 Oct 2015 09:53:20 +0200
Subject: [PATCH 5/8] fix building mysql driver under mingw

Change-Id: I9c4e821d5b3a6919566c6b684cb4916827feb6a9

diff --git a/src/sql/drivers/mysql/qsql_mysql.pri b/src/sql/drivers/mysql/qsql_mysql.pri
index 3cfb614..8b7063f 100644
--- a/src/sql/drivers/mysql/qsql_mysql.pri
+++ b/src/sql/drivers/mysql/qsql_mysql.pri
@@ -4,7 +4,7 @@ SOURCES += $$PWD/qsql_mysql.cpp
 QMAKE_CXXFLAGS *= $$QT_CFLAGS_MYSQL
 LIBS += $$QT_LFLAGS_MYSQL
 
-unix {
+if (unix|mingw) {
     isEmpty(QT_LFLAGS_MYSQL) {
         !contains(LIBS, .*mysqlclient.*):!contains(LIBS, .*mysqld.*) {
             use_libmysqlclient_r:LIBS += -lmysqlclient_r
-- 
2.7.4


From 236aecbd657f06d0b18bc25b93d5390ac644daaf Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Wed, 26 Aug 2015 12:45:43 +0100
Subject: [PATCH 6/8] cmake: Rearrange STATIC vs INTERFACE targets

Otherwise we attempt to add_library(Qt5::UiPlugin STATIC IMPORTED)
for header-only modules when building Qt5 statically.

Source: https://git.io/vzWJz
See also: https://github.com/mxe/mxe/issues/1185

diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
index d2358ca..6b1dc95 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -222,13 +222,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
     endif()
 !!ENDIF
 
+!!IF equals(TEMPLATE, aux)
+    add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED)
+!!ELSE
 !!IF !isEmpty(CMAKE_STATIC_TYPE)
     add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED)
     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
 !!ELSE
-!!IF equals(TEMPLATE, aux)
-    add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED)
-!!ELSE
     add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED)
 !!ENDIF
 !!ENDIF
-- 
2.7.4


From 0d1b11391894345be8a1fe084afb3799fc828488 Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Wed, 18 May 2016 14:40:20 -0700
Subject: [PATCH 7/8] Fix linking of the minimal platform plugin on OS X

platformsupport/fontdatabases/fontdatabases.pri disables all font
databases except CoreText on OS X, so this is required for
linking. Otherwise, we get undefined reference linker errors:

Undefined symbols for architecture x86_64:
  "vtable for QBasicFontDatabase", referenced from:
      QMinimalIntegration::fontDatabase() const in
  qminimalintegration.o

Change-Id: I31298e973803b4d6eedbf61607056114d1556584
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
(cherry picked from commit 16864c42d6bc0ee6b3e3fa03123ef5884557ceea)

diff --git a/src/plugins/platforms/minimal/minimal.pro b/src/plugins/platforms/minimal/minimal.pro
index 0d31d66..bd6f2d8 100644
--- a/src/plugins/platforms/minimal/minimal.pro
+++ b/src/plugins/platforms/minimal/minimal.pro
@@ -11,6 +11,7 @@ HEADERS =   qminimalintegration.h \
 OTHER_FILES += minimal.json
 
 CONFIG += qpa/genericunixfontdatabase
+darwin: DEFINES += QT_NO_FONTCONFIG
 
 PLUGIN_TYPE = platforms
 PLUGIN_CLASS_NAME = QMinimalIntegrationPlugin
-- 
2.7.4


From f504f5805be3cc27e19632e15b29eaaaac0e92e8 Mon Sep 17 00:00:00 2001
From: Boris Pek <tehnick-8@yandex.ru>
Date: Sun, 19 Jun 2016 03:15:43 +0300
Subject: [PATCH 8/8] Fix build of the minimal platform plugin for MS Windows

when qtbase is configured with -fontconfig and -system-freetype.

This fix is necessary after 060e0f6628fd185994911307c59f5355acaaf18f.
Used the same approach as in 16864c42d6bc0ee6b3e3fa03123ef5884557ceea.

Change-Id: Idece0dc11d89e38266c95de1769be751c06324ef
(cherry picked from commit 02d2969fafe5088bb1c80eb58b2736df447326cd)

diff --git a/src/plugins/platforms/minimal/minimal.pro b/src/plugins/platforms/minimal/minimal.pro
index bd6f2d8..4b63461 100644
--- a/src/plugins/platforms/minimal/minimal.pro
+++ b/src/plugins/platforms/minimal/minimal.pro
@@ -12,6 +12,7 @@ OTHER_FILES += minimal.json
 
 CONFIG += qpa/genericunixfontdatabase
 darwin: DEFINES += QT_NO_FONTCONFIG
+win32: DEFINES += QT_NO_FONTCONFIG
 
 PLUGIN_TYPE = platforms
 PLUGIN_CLASS_NAME = QMinimalIntegrationPlugin
-- 
2.7.4

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Sat, 16 Jul 2016 20:31:07 +1000
Subject: [PATCH] Fix pkgconfig file and library naming

See: https://codereview.qt-project.org/#/c/165394/
     https://bugreports.qt.io/browse/QTBUG-30898

Currently, *.pc files are generated with debug suffix `d` in `-release`
mode and without the suffix in `-debug` or `-debug-and-release`. This
can be worked around by `CONIFG-=debug_and_release`, however, a more
predictable and consistent naming approach would be preferable.

This change mimics the *.prl file and lib conventions:

  -release: creates normal *.pc files and lib names
  -release -force-debug-info: normal as above
  -debug: creates *d.pc and *d lib names
  -debug-and-release: creates both
  -default: creates both (default link: debug)

and should be unsurprising to users of `pkg-config`. At very least,
it's deterministic and easily incorporated into build systems.

Task-number: 30898
Change-Id: If75336ec7d21a7ec0cb6d245fe87c64afcb5a644

diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 1111111..2222222 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -244,6 +244,10 @@ load(qt_installs)
 
 load(qt_targets)
 
+# Set TARGET towards the end but before pkgconfig setup to keep naming
+# conventions consistent with *prl files
+TARGET = $$qt5LibraryTarget($$TARGET$$QT_LIBINFIX)
+
 # this builds on top of qt_common
 !internal_module:!lib_bundle:if(unix|mingw) {
     CONFIG += create_pc
@@ -254,12 +258,12 @@ load(qt_targets)
         QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
     QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
     QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
-    QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ")
-    QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION)
+    QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt$$QT_MAJOR_VERSION, "Qt$$QT_MAJOR_VERSION ")
+    QMAKE_PKGCONFIG_FILE = $$TARGET
     for(i, MODULE_DEPENDS): \
-        QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION))
+        QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION))$$qtPlatformTargetSuffix()
     isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \
-        QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
+        QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt$$QT_MAJOR_VERSION, "Qt ") module
     pclib_replace.match = $$lib_replace.match
     !isEmpty(lib_replace.replace): \
         pclib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR
@@ -293,5 +297,3 @@ win32 {
     # On other platforms, Qt's own compilation goes needs to compile the Qt 5.0 API
     DEFINES *= QT_DISABLE_DEPRECATED_BEFORE=0x050000
 }
-
-TARGET = $$qt5LibraryTarget($$TARGET$$QT_LIBINFIX)  # Do this towards the end