summaryrefslogtreecommitdiffstats
path: root/src/qtbase-1.patch
blob: b02621089be44915e6a8be591524e74591a01635 (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
This file is part of MXE.
See index.html for further information.

From 2a005d22af074aff326d57b25e1cea1abda8ee6e 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/7] 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.1.4


From 2baad6771338e3c2361f515a4ba6bf0f26812a6b 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/7] 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.1.4


From c526e9fc734f91d5174399ab539b75dd3de3f8a4 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/7] 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.1.4


From 35759dbe5a613f9006190cd135cc8ec994cf71e5 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/7] configure: don't set QT_NO_SYSTEMSEMAPHORE for Windows

Change-Id: I53c110ef40e3d14cc49fa23aa5d294611cac2ffa

diff --git a/configure b/configure
index 8a4c89e..eb432b5 100755
--- a/configure
+++ b/configure
@@ -4451,7 +4451,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.1.4


From 68f2921bf86ed75488f913458087ef4db571e05d 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/7] 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.1.4


From 5ee9b60bef32eb8ee8a889f0349c1307750f95c6 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Thu, 8 Oct 2015 17:15:46 +1100
Subject: [PATCH 6/7] Fix build with clang 3.7

_Nullable is a language extension in clang 3.7 (indicating whether or
not a pointer can be null).
http://clang.llvm.org/docs/AttributeReference.html#nullable

Using it as a class name breaks building with this compiler

Taken from: https://codereview.qt-project.org/#/c/121545/2//ALL,unified

diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp
index 3d0d5de..3d780cd 100644
--- a/src/tools/qlalr/lalr.cpp
+++ b/src/tools/qlalr/lalr.cpp
@@ -238,11 +238,11 @@ void Grammar::buildExtendedGrammar ()
   non_terminals.insert (accept_symbol);
 }
 
-struct _Nullable: public std::unary_function<Name, bool>
+struct Nullable: public std::unary_function<Name, bool>
 {
   Automaton *_M_automaton;
 
-  _Nullable (Automaton *aut):
+  Nullable (Automaton *aut):
     _M_automaton (aut) {}
 
   bool operator () (Name name) const
@@ -300,7 +300,7 @@ void Automaton::buildNullables ()
 
       for (RulePointer rule = _M_grammar->rules.begin (); rule != _M_grammar->rules.end (); ++rule)
         {
-          NameList::iterator nn = std::find_if (rule->rhs.begin (), rule->rhs.end (), std::not1 (_Nullable (this)));
+          NameList::iterator nn = std::find_if (rule->rhs.begin (), rule->rhs.end (), std::not1 (Nullable (this)));
 
           if (nn == rule->rhs.end ())
             changed |= nullables.insert (rule->lhs).second;
@@ -635,7 +635,7 @@ void Automaton::buildIncludesDigraph ()
                   if (! _M_grammar->isNonTerminal (*A))
                     continue;
 
-                  NameList::iterator first_not_nullable = std::find_if (dot, rule->rhs.end (), std::not1 (_Nullable (this)));
+                  NameList::iterator first_not_nullable = std::find_if (dot, rule->rhs.end (), std::not1 (Nullable (this)));
                   if (first_not_nullable != rule->rhs.end ())
                     continue;
 
-- 
2.1.4


From a1420344bacb6ea88139300c3e17231c395e5921 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Date: Fri, 24 Jul 2015 13:18:29 +0200
Subject: [PATCH 7/7] fix build with no built-in image handlers

the handlers' .pri files added $$PWD to INCLUDEPATH to make the files
self-contained when used externally, but this polluted the include path
of the gui module itself, thus hiding incorrect use of QPA includes.

Task-number: QTBUG-47400
Change-Id: I576469a71e8ded0b409d62687999c0fa884613f9

diff --git a/src/gui/image/qgifhandler.pri b/src/gui/image/qgifhandler.pri
index 6eb0751..ec33101 100644
--- a/src/gui/image/qgifhandler.pri
+++ b/src/gui/image/qgifhandler.pri
@@ -1,4 +1,3 @@
 # common to plugin and built-in forms
-INCLUDEPATH *= $$PWD
 HEADERS += $$PWD/qgifhandler_p.h
 SOURCES += $$PWD/qgifhandler.cpp
diff --git a/src/gui/image/qjpeghandler.pri b/src/gui/image/qjpeghandler.pri
index c8de33d..de40c67 100644
--- a/src/gui/image/qjpeghandler.pri
+++ b/src/gui/image/qjpeghandler.pri
@@ -1,5 +1,4 @@
 # common to plugin and built-in forms
-INCLUDEPATH *= $$PWD
 HEADERS += $$PWD/qjpeghandler_p.h
 SOURCES += $$PWD/qjpeghandler.cpp
 contains(QT_CONFIG, system-jpeg) {
diff --git a/src/gui/image/qpnghandler.pri b/src/gui/image/qpnghandler.pri
index aca7e2c..9ab175d 100644
--- a/src/gui/image/qpnghandler.pri
+++ b/src/gui/image/qpnghandler.pri
@@ -1,4 +1,3 @@
-INCLUDEPATH *= $$PWD
 HEADERS += $$PWD/qpnghandler_p.h
 SOURCES += $$PWD/qpnghandler.cpp
 contains(QT_CONFIG, system-png) {
diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp
index 670717c..c3a0f5c 100644
--- a/src/gui/painting/qbrush.cpp
+++ b/src/gui/painting/qbrush.cpp
@@ -35,7 +35,7 @@
 #include "qpixmap.h"
 #include "qbitmap.h"
 #include "qpixmapcache.h"
-#include "qplatformpixmap.h"
+#include <qpa/qplatformpixmap.h>
 #include "qdatastream.h"
 #include "qvariant.h"
 #include "qline.h"
diff --git a/src/plugins/imageformats/gif/gif.pro b/src/plugins/imageformats/gif/gif.pro
index 898f06e..2a5048b 100644
--- a/src/plugins/imageformats/gif/gif.pro
+++ b/src/plugins/imageformats/gif/gif.pro
@@ -5,6 +5,7 @@ PLUGIN_CLASS_NAME = QGifPlugin
 load(qt_plugin)
 
 include(../../../gui/image/qgifhandler.pri)
+INCLUDEPATH += ../../../gui/image
 SOURCES += $$PWD/main.cpp
 HEADERS += $$PWD/main.h
 OTHER_FILES += gif.json
diff --git a/src/plugins/imageformats/jpeg/jpeg.pro b/src/plugins/imageformats/jpeg/jpeg.pro
index 45bf7bb..e33fde1 100644
--- a/src/plugins/imageformats/jpeg/jpeg.pro
+++ b/src/plugins/imageformats/jpeg/jpeg.pro
@@ -9,6 +9,7 @@ QT += core-private
 QTDIR_build:REQUIRES = "!contains(QT_CONFIG, no-jpeg)"
 
 include(../../../gui/image/qjpeghandler.pri)
+INCLUDEPATH += ../../../gui/image
 SOURCES += main.cpp
 HEADERS += main.h
 OTHER_FILES += jpeg.json
-- 
2.1.4