summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2015-05-28 14:50:37 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2015-05-28 14:50:37 +0200
commit3fa7bb148ed40bd018ce51b5f20c0c8792638568 (patch)
treedc7b2847822189d5c0cbc7195fbca3556d6aa6a2 /recipes-qt/qt5/qtbase
parent17eb158c6d2cd290b054b5bd54311aa44a02d04d (diff)
downloadmeta-qt5-3fa7bb148ed40bd018ce51b5f20c0c8792638568.tar.gz
qt5: drop recipes for 5.4.1 version
* we don't plan to keep 2 versions, one from tarballs and one from git now there is 5.4.2 in git recipes and 5.4.1 tarballs aren't very useful anymore Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtbase')
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch351
-rw-r--r--recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch39
-rw-r--r--recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch233
-rw-r--r--recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch114
-rw-r--r--recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch97
-rw-r--r--recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch30
-rw-r--r--recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch29
-rw-r--r--recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch72
-rw-r--r--recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch157
-rw-r--r--recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch42
-rw-r--r--recipes-qt/qt5/qtbase/0011-Always-build-uic.patch31
-rw-r--r--recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch68
-rw-r--r--recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch108
-rw-r--r--recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch72
-rw-r--r--recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch196
-rw-r--r--recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch30
-rw-r--r--recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch47
-rw-r--r--recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake1
18 files changed, 0 insertions, 1717 deletions
diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
deleted file mode 100644
index 5f7ab145..00000000
--- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
+++ /dev/null
@@ -1,351 +0,0 @@
1From df887cc51d1cf5328e536708b461f475e9fb4577 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 15 Apr 2013 04:29:32 +0200
4Subject: [PATCH 01/13] Add linux-oe-g++ platform
5
6* This qmake.conf unlike other platforms reads most variables from
7 shell environment, because it's easier for qt recipes to export
8 *FLAGS or CC specific for given recipe
9
10* configure: add getQEvalMakeConf and getXQEvalMakeConf
11 Allow expansion of $(...) references from qmake.conf to generate
12 qmake environment from shell environment as exported by qmake5_base
13
14* configure: don't export SYSTEM_VARIABLES to .qmake.vars
15 linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
16 causing issues as we need g++ to be used as linker
17
18* configure.prf: Allow to add extra arguments to make
19 sometimes we would like to add -e or define some variable and respect it from both
20 Makefiles used in configure tests and also Makefiles to build the application
21
22* OE_QMAKE_CXX in order to allow compiler version check to succeed
23 which allows WebKit to be enabled.
24
25* Other variables in order to let config.tests to use our -platform
26 settings
27
28* Add setBootstrapEvalVariable to bootstrap qmake with our environment
29 too, this allows us to use -platform linux-oe-g++ also for native
30 recipe
31
32* disable gdb_dwarf_index
33 * qmake is trying to call native gdb and we don't depend on gdb-native
34 (or even provide gdb-native)
35 * fixes errors like this:
36 /bin/sh: gdb: command not found
37 /bin/sh: line 0: test: -gt: unary operator expected
38 which are not fatal, but still misleading in do_configure output
39
40Upstream-Status: Inappropriate [embedded specific]
41 too OE specific, probably cannot be upstreamed
42
43Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
44Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
45---
46 configure | 66 ++++++++++++++++-------
47 mkspecs/features/configure.prf | 4 +-
48 mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++
49 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++
50 4 files changed, 188 insertions(+), 22 deletions(-)
51 create mode 100644 mkspecs/linux-oe-g++/qmake.conf
52 create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
53
54diff --git a/configure b/configure
55index 5ad29bb..0bcc175 100755
56--- a/configure
57+++ b/configure
58@@ -316,6 +316,16 @@ getQMakeConf()
59 getSingleQMakeVariable "$1" "$specvals"
60 }
61
62+# OE qmake.conf is reading some variables from shell env
63+# read them from qmake.conf, replace qmake () syntax with shell and eval
64+getQEvalMakeConf()
65+{
66+ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
67+ EVAL=`eval "echo ${VAL}"`
68+# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
69+ eval "echo ${VAL}"
70+}
71+
72 getXQMakeConf()
73 {
74 if [ -z "$xspecvals" ]; then
75@@ -325,6 +335,16 @@ getXQMakeConf()
76 getSingleQMakeVariable "$1" "$xspecvals"
77 }
78
79+# OE qmake.conf is reading some variables from shell env
80+# read them from qmake.conf, replace qmake () syntax with shell and eval
81+getXQEvalMakeConf()
82+{
83+ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
84+ EVAL=`eval "echo ${VAL}"`
85+# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
86+ eval "echo ${VAL}"
87+}
88+
89 compilerSupportsFlag()
90 {
91 cat >conftest.cpp <<EOF
92@@ -541,21 +561,19 @@ fi
93 # initalize variables
94 #-------------------------------------------------------------------------------
95
96-SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
97-for varname in $SYSTEM_VARIABLES; do
98+# Export all OE variables for qmake.conf from shell env to QMakeVars
99+OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP"
100+for varname in $OE_VARIABLES; do
101 qmakevarname="${varname}"
102- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
103- if [ "${varname}" = "LDFLAGS" ]; then
104- qmakevarname="LFLAGS"
105- elif [ "${varname}" = "LD" ]; then
106- qmakevarname="LINK"
107- fi
108 cmd=`echo \
109-'if [ -n "\$'${varname}'" ]; then
110- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
111+'if [ -n "\$OE_QMAKE_'${varname}'" ]; then
112+ QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'"
113+# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2
114 fi'`
115 eval "$cmd"
116 done
117+
118+SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
119 # Use CC/CXX to run config.tests
120 mkdir -p "$outpath/config.tests"
121 rm -f "$outpath/config.tests/.qmake.cache"
122@@ -3173,7 +3191,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
123 [ "$CFG_QGTKSTYLE" = "auto" ] && CFG_QGTKSTYLE=no
124 fi
125
126-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
127+QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX`
128
129 TEST_COMPILER=$QMAKE_CONF_COMPILER
130
131@@ -3211,7 +3229,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
132 exit 1
133 fi
134 fi
135-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
136+TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS`
137
138 GCC_MACHINE_DUMP=
139 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
140@@ -3682,6 +3700,14 @@ setBootstrapVariable()
141 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
142 }
143
144+# OE qmake.conf is reading some variables from shell env
145+# read them from qmake.conf, replace qmake () syntax with shell and eval
146+setBootstrapEvalVariable()
147+{
148+ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
149+}
150+
151+
152 # build qmake
153 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
154 echo "Creating qmake..."
155@@ -3720,14 +3746,14 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
156 fi
157
158 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
159- setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
160- setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
161- setBootstrapVariable QMAKE_CFLAGS
162- setBootstrapVariable QMAKE_CFLAGS_SPLIT_SECTIONS
163- setBootstrapVariable QMAKE_CXXFLAGS
164- setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS
165- setBootstrapVariable QMAKE_LFLAGS
166- setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS
167+ setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM"
168+ setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM"
169+ setBootstrapEvalVariable QMAKE_CFLAGS
170+ setBootstrapEvalVariable QMAKE_CFLAGS_SPLIT_SECTIONS
171+ setBootstrapEvalVariable QMAKE_CXXFLAGS
172+ setBootstrapEvalVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS
173+ setBootstrapEvalVariable QMAKE_LFLAGS
174+ setBootstrapEvalVariable QMAKE_LFLAGS_GCSECTIONS
175
176 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
177 setBootstrapVariable QMAKE_CFLAGS_RELEASE
178diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
179index 6b37a04..dcf6025 100644
180--- a/mkspecs/features/configure.prf
181+++ b/mkspecs/features/configure.prf
182@@ -63,12 +63,12 @@ defineTest(qtCompileTest) {
183 }
184
185 # Clean up after previous run
186- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
187+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
188
189 mkpath($$test_out_dir)|error("Aborting.")
190
191 qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
192- qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") {
193+ qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
194 log("yes$$escape_expand(\\n)")
195 msg = "test $$1 succeeded"
196 write_file($$QMAKE_CONFIG_LOG, msg, append)
197diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
198new file mode 100644
199index 0000000..2ad2810
200--- /dev/null
201+++ b/mkspecs/linux-oe-g++/qmake.conf
202@@ -0,0 +1,40 @@
203+#
204+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
205+#
206+
207+MAKEFILE_GENERATOR = UNIX
208+CONFIG += incremental
209+QMAKE_INCREMENTAL_STYLE = sublib
210+
211+include(../common/linux.conf)
212+
213+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
214+QMAKE_AR = $(OE_QMAKE_AR) cqs
215+QMAKE_STRIP = $(OE_QMAKE_STRIP)
216+QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER)
217+
218+include(../common/gcc-base-unix.conf)
219+
220+# *FLAGS from gcc-base.conf
221+QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
222+QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
223+QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
224+
225+include(../common/g++-unix.conf)
226+
227+# tc settings from g++-base.conf
228+QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc
229+QMAKE_CC = $(OE_QMAKE_CC)
230+QMAKE_CXX = $(OE_QMAKE_CXX)
231+
232+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
233+
234+QMAKE_LINK = $(OE_QMAKE_LINK)
235+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
236+QMAKE_LINK_C = $(OE_QMAKE_LINK)
237+QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
238+
239+# for the SDK
240+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
241+
242+load(qt_config)
243diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
244new file mode 100644
245index 0000000..dd12003
246--- /dev/null
247+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
248@@ -0,0 +1,100 @@
249+/****************************************************************************
250+**
251+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
252+** Contact: http://www.qt-project.org/legal
253+**
254+** This file is part of the qmake spec of the Qt Toolkit.
255+**
256+** $QT_BEGIN_LICENSE:LGPL$
257+** Commercial License Usage
258+** Licensees holding valid commercial Qt licenses may use this file in
259+** accordance with the commercial license agreement provided with the
260+** Software or, alternatively, in accordance with the terms contained in
261+** a written agreement between you and Digia. For licensing terms and
262+** conditions see http://qt.digia.com/licensing. For further information
263+** use the contact form at http://qt.digia.com/contact-us.
264+**
265+** GNU Lesser General Public License Usage
266+** Alternatively, this file may be used under the terms of the GNU Lesser
267+** General Public License version 2.1 as published by the Free Software
268+** Foundation and appearing in the file LICENSE.LGPL included in the
269+** packaging of this file. Please review the following information to
270+** ensure the GNU Lesser General Public License version 2.1 requirements
271+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
272+**
273+** In addition, as a special exception, Digia gives you certain additional
274+** rights. These rights are described in the Digia Qt LGPL Exception
275+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
276+**
277+** GNU General Public License Usage
278+** Alternatively, this file may be used under the terms of the GNU
279+** General Public License version 3.0 as published by the Free Software
280+** Foundation and appearing in the file LICENSE.GPL included in the
281+** packaging of this file. Please review the following information to
282+** ensure the GNU General Public License version 3.0 requirements will be
283+** met: http://www.gnu.org/copyleft/gpl.html.
284+**
285+**
286+** $QT_END_LICENSE$
287+**
288+****************************************************************************/
289+
290+#ifndef QPLATFORMDEFS_H
291+#define QPLATFORMDEFS_H
292+
293+// Get Qt defines/settings
294+
295+#include "qglobal.h"
296+
297+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
298+
299+// 1) need to reset default environment if _BSD_SOURCE is defined
300+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
301+// 3) it seems older glibc need this to include the X/Open stuff
302+#ifndef _GNU_SOURCE
303+# define _GNU_SOURCE
304+#endif
305+
306+#include <unistd.h>
307+
308+
309+// We are hot - unistd.h should have turned on the specific APIs we requested
310+
311+#include <features.h>
312+#include <pthread.h>
313+#include <dirent.h>
314+#include <fcntl.h>
315+#include <grp.h>
316+#include <pwd.h>
317+#include <signal.h>
318+
319+#include <sys/types.h>
320+#include <sys/ioctl.h>
321+#include <sys/ipc.h>
322+#include <sys/time.h>
323+#include <sys/shm.h>
324+#include <sys/socket.h>
325+#include <sys/stat.h>
326+#include <sys/wait.h>
327+#include <netinet/in.h>
328+#ifndef QT_NO_IPV6IFNAME
329+#include <net/if.h>
330+#endif
331+
332+#define QT_USE_XOPEN_LFS_EXTENSIONS
333+#include "../common/posix/qplatformdefs.h"
334+
335+#undef QT_SOCKLEN_T
336+
337+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
338+#define QT_SOCKLEN_T socklen_t
339+#else
340+#define QT_SOCKLEN_T int
341+#endif
342+
343+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
344+#define QT_SNPRINTF ::snprintf
345+#define QT_VSNPRINTF ::vsnprintf
346+#endif
347+
348+#endif // QPLATFORMDEFS_H
349--
3502.3.1
351
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
deleted file mode 100644
index f8420c04..00000000
--- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 046ff855191e587ce9263f40bd46183c175b6387 Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 17:22:30 +0200
4Subject: [PATCH 02/13] qlibraryinfo: allow to set qt.conf from the outside
5 using the environment
6
7Allow to set a qt.conf from the outside using the environment. This allows
8to inject new prefixes and other paths into qmake. This is needed when using
9the same qmake binary to build qt/x11 and qt/embedded
10
11Upstream-Status: Inappropriate [embedded specific]
12 again very OE specific to read everything from environment (reusing the same
13 qmake from sstate and replacing all configured paths in it with qt.conf from
14 environment).
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 src/corelib/global/qlibraryinfo.cpp | 5 ++++-
19 1 file changed, 4 insertions(+), 1 deletion(-)
20
21diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
22index d592032..c418c5e 100644
23--- a/src/corelib/global/qlibraryinfo.cpp
24+++ b/src/corelib/global/qlibraryinfo.cpp
25@@ -138,7 +138,10 @@ QLibrarySettings::QLibrarySettings()
26
27 QSettings *QLibraryInfoPrivate::findConfiguration()
28 {
29- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
30+ QByteArray config = getenv("QT_CONF_PATH");
31+ QString qtconfig = QFile::decodeName(config);
32+ if(!QFile::exists(qtconfig))
33+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
34 #ifdef QT_BOOTSTRAPPED
35 if(!QFile::exists(qtconfig))
36 qtconfig = qt_libraryInfoFile();
37--
382.3.1
39
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
deleted file mode 100644
index ff269677..00000000
--- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
+++ /dev/null
@@ -1,233 +0,0 @@
1From 6c015d77a95910deec0a8c4a265587578531b476 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH 03/13] Add -external-hostbindir option
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
24Signed-off-by: Simon Busch <morphis@gravedo.de>
25Signed-off-by: Jonathan Liu <net147@gmail.com>
26---
27 configure | 15 +++++++++++++++
28 mkspecs/features/qt_functions.prf | 6 +++++-
29 mkspecs/features/qt_tool.prf | 4 ++--
30 qtbase.pro | 13 ++++++++++---
31 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
32 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
33 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
34 7 files changed, 38 insertions(+), 12 deletions(-)
35
36diff --git a/configure b/configure
37index 0bcc175..996ce50 100755
38--- a/configure
39+++ b/configure
40@@ -769,6 +769,7 @@ QT_HOST_BINS=
41 QT_HOST_LIBS=
42 QT_HOST_DATA=
43 QT_EXT_PREFIX=
44+QT_EXTERNAL_HOST_BINS=
45
46 #flags for SQL drivers
47 QT_CFLAGS_PSQL=
48@@ -888,6 +889,7 @@ while [ "$#" -gt 0 ]; do
49 -testsdir| \
50 -hostdatadir| \
51 -hostbindir| \
52+ -external-hostbindir| \
53 -hostlibdir| \
54 -extprefix| \
55 -sysroot| \
56@@ -1102,6 +1104,9 @@ while [ "$#" -gt 0 ]; do
57 extprefix)
58 QT_EXT_PREFIX="$VAL"
59 ;;
60+ external-hostbindir)
61+ QT_EXTERNAL_HOST_BINS="$VAL"
62+ ;;
63 pkg-config)
64 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
65 CFG_PKGCONFIG="$VAL"
66@@ -2265,6 +2270,10 @@ Installation options:
67 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
68 (default HOSTPREFIX)
69
70+ -external-hostbindir <dir> Use external host executables instead of building them
71+ (not used by defaut)
72+
73+
74 Configure options:
75
76 The defaults (*) are usually acceptable. A plus (+) denotes a default value
77@@ -2944,6 +2953,11 @@ fi
78 # command line and environment validation
79 #-------------------------------------------------------------------------------
80
81+# default is empty, don't call makeabs if it is empty
82+if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
83+ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
84+fi
85+
86 # update QT_CONFIG to show our current predefined configuration
87 CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
88 case "$CFG_QCONFIG" in
89@@ -3644,6 +3658,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = {
90 "qt_hbinpath=$QT_HOST_BINS",
91 "qt_hlibpath=$QT_HOST_LIBS",
92 "qt_hdatpath=$QT_HOST_DATA",
93+ "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
94 "qt_targspec=$shortxspec",
95 "qt_hostspec=$shortspec",
96 #endif
97diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
98index 7961f65..e11b23d 100644
99--- a/mkspecs/features/qt_functions.prf
100+++ b/mkspecs/features/qt_functions.prf
101@@ -192,7 +192,11 @@ defineTest(qtAddRpathLink) {
102 defineTest(qtPrepareTool) {
103 cmd = $$eval(QT_TOOL.$${2}.binary)
104 isEmpty(cmd) {
105- cmd = $$[QT_HOST_BINS]/$$2
106+ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
107+ isEmpty(QT_EXTERNAL_HOST_BINS): \
108+ cmd = $$[QT_HOST_BINS]/$$2
109+ else: \
110+ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2
111 exists($${cmd}.pl) {
112 cmd = perl -w $$system_path($${cmd}.pl)
113 } else: contains(QMAKE_HOST.os, Windows) {
114diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
115index 1d3e88c..9b26adf 100644
116--- a/mkspecs/features/qt_tool.prf
117+++ b/mkspecs/features/qt_tool.prf
118@@ -12,11 +12,11 @@
119 load(qt_app)
120
121 CONFIG += console
122+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
123
124 # If we are doing a prefix build, create a "module" pri which enables
125 # qtPrepareTool() to work with the non-installed build.
126-# Non-bootstrapped tools always need this because of the environment setup.
127-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
128+!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) {
129 isEmpty(MODULE):MODULE = $$TARGET
130
131 !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
132diff --git a/qtbase.pro b/qtbase.pro
133index 6d0de44..ddf7478 100644
134--- a/qtbase.pro
135+++ b/qtbase.pro
136@@ -69,18 +69,25 @@ CONFIG -= qt
137
138 ### installations ####
139
140+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
141+
142 #qmake
143 qmake.path = $$[QT_HOST_BINS]
144+qmake.files = $$OUT_PWD/bin/qmake
145+!isEmpty(QT_EXTERNAL_HOST_BINS) {
146+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake
147+}
148 equals(QMAKE_HOST.os, Windows) {
149- qmake.files = $$OUT_PWD/bin/qmake.exe
150-} else {
151- qmake.files = $$OUT_PWD/bin/qmake
152+ qmake.files = $${qmake.files}.exe
153 }
154 INSTALLS += qmake
155
156 #syncqt
157 syncqt.path = $$[QT_HOST_BINS]
158 syncqt.files = $$PWD/bin/syncqt.pl
159+!isEmpty(QT_EXTERNAL_HOST_BINS) {
160+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl
161+}
162 INSTALLS += syncqt
163
164 # If we are doing a prefix build, create a "module" pri which enables
165diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
166index 9bda70e..6e3605a 100644
167--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
168+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
169@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
170 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
171 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
172 !!ELSE
173- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
174+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
175 !!ENDIF
176 _qt5_Core_check_file_exists(${imported_location})
177
178@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
179 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
180 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
181 !!ELSE
182- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
183+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
184 !!ENDIF
185 _qt5_Core_check_file_exists(${imported_location})
186
187@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
188 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
189 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
190 !!ELSE
191- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
192+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
193 !!ENDIF
194 _qt5_Core_check_file_exists(${imported_location})
195
196diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
197index 1d94715..301af8f 100644
198--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
199+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
200@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
201 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
202 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
203 !!ELSE
204- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
205+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
206 !!ENDIF
207 _qt5_DBus_check_file_exists(${imported_location})
208
209@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
210 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
211 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
212 !!ELSE
213- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
214+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
215 !!ENDIF
216 _qt5_DBus_check_file_exists(${imported_location})
217
218diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
219index 99d87e2..5621dc0 100644
220--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
221+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
222@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
223 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
224 set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
225 !!ELSE
226- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
227+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
228 !!ENDIF
229 _qt5_Widgets_check_file_exists(${imported_location})
230
231--
2322.3.1
233
diff --git a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
deleted file mode 100644
index 45fca3aa..00000000
--- a/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From 55e85e61eb93bce5b84f856ea5cc47af73e01a1d Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 27 Apr 2013 23:15:37 +0200
4Subject: [PATCH 04/13] qt_module: Fix pkgconfig and libtool replacements
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9* in situation like this:
10 QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm
11 QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib
12 QT_INSTALL_LIBS/raw:/usr/lib
13 QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib
14
15 I don't want the replacement like this:
16 sed
17 -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g"
18 -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g"
19 "../../lib/pkgconfig/Qt5Core.pc"
20 >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc"
21 because that way I'll end with -L/usr/lib in .pc file which is
22 cross-compile unfriendly, keeping ${libdir}/${includedir} works better
23 in my case
24
25* qt_module: Fix paths in .prl files
26* qmake does not prefix them with QT_SYSROOT when using them
27 so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE
28 variable, which is unsafe for cross-compilation
29* writting QT_SYSROOT in .prl files is dangerous for sstate when
30 builds are in different directories, so we need
31 SSTATE_SCAN_FILES += "*.pri *.prl"
32 to make them relocateble
33
34* fix paths in packageconfig files
35 This reverts parts of:
36
37 enable path replacement in installed prl files on all platforms
38
39 Task-number: QTBUG-33794
40 Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
41 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
42
43* to debug this, rebuild qtbase and read build/src/corelib/Makefile
44* this is example of broken install_target rule (added line feeds):
45 -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g
46 -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g'
47 -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g'
48 "../../lib/pkgconfig/Qt5Core.pc"
49 >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc"
50 change .prf files, create copy of WORKDIR, re-excecute only
51 do_configure task and compare generated Makefile, repeat until
52 replace in generated Makefile works ok, then refresh patch and
53 try complete rebuild for qtbase
54* if everything is ok, then try:
55 image $ grep -R "\-L/usr" .
56 image $ grep -R "\-I/usr" .
57 and it should return only few cases of
58 qmake.conf:QMAKE_LFLAGS_THREAD = -L/usr/lib/threads
59 for aix* platformas
60
61Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c
62Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
63Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
64---
65 mkspecs/features/qt_common.prf | 2 +-
66 mkspecs/features/qt_module.prf | 15 +++++++++++++++
67 2 files changed, 16 insertions(+), 1 deletion(-)
68
69diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
70index eb65e73..4db40d0 100644
71--- a/mkspecs/features/qt_common.prf
72+++ b/mkspecs/features/qt_common.prf
73@@ -33,7 +33,7 @@ contains(TEMPLATE, .*lib) {
74 lib_replace.replace =
75 } else {
76 lib_replace.match = $$rplbase/lib
77- lib_replace.replace = $$qt_libdir
78+ lib_replace.replace = "\$$\\{libdir}"
79 }
80 lib_replace.CONFIG = path
81 QMAKE_PRL_INSTALL_REPLACE += lib_replace
82diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
83index d213f9e..915c596 100644
84--- a/mkspecs/features/qt_module.prf
85+++ b/mkspecs/features/qt_module.prf
86@@ -192,10 +192,25 @@ unix|mingw {
87 QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
88 QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
89
90+ pkgconfig_include_replace.match = $$rplbase/include
91+ pkgconfig_include_replace.replace = "\$$\\{includedir}"
92+ pkgconfig_include_replace.CONFIG = path
93+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace
94+
95 unix {
96 CONFIG += create_libtool explicitlib
97 QMAKE_LIBTOOL_LIBDIR = $$qt_libdir
98 QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace
99+ # add '=' as sysroot in .la files
100+ lafile_replace.match = "-L\$${libdir}"
101+ lafile_replace.replace = "-L=\$$\\{libdir}"
102+ lafile_replace.CONFIG = path
103+ QMAKE_LIBTOOL_INSTALL_REPLACE += lafile_replace
104+ # drop -L/usr/lib in .prl files
105+ prl_replace.match = "-L\$${libdir}"
106+ prl_replace.replace = ""
107+ prl_replace.CONFIG = path
108+ QMAKE_PRL_INSTALL_REPLACE += prl_replace
109 }
110 }
111
112--
1132.3.1
114
diff --git a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch b/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch
deleted file mode 100644
index 4a71e0f2..00000000
--- a/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch
+++ /dev/null
@@ -1,97 +0,0 @@
1From 129d2a82da2ef6eede761967d981c5edcc0820d8 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Mon, 21 Apr 2014 19:22:04 +0200
4Subject: [PATCH 05/13] Revert "eglfs: Print the chosen config in debug mode"
5
6With this change the build is failing with:
7| In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0,
8| from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36,
9| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext_p.h:51,
10| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:34:
11| ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:10: error: expected identifier before 'int'
12| enum Status {
13| ^
14| In file included from ../../include/QtCore/qtextstream.h:1:0,
15| from ../../include/QtCore/../../../git/src/corelib/io/qdebug.h:42,
16| from ../../include/QtCore/qdebug.h:1,
17| from ../../include/QtCore/QDebug:1,
18| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformcontext.cpp:40:
19| ../../include/QtCore/../../../git/src/corelib/io/qtextstream.h:72:17: error: expected unqualified-id before '{' token
20| enum Status {
21| ^
22| Makefile:3896: recipe for target '.obj/qeglplatformcontext.o' failed
23| make[2]: *** [.obj/qeglplatformcontext.o] Error 1
24| make[2]: *** Waiting for unfinished jobs....
25| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:196:5: error: 'Display' redeclared as different kind of symbol
26| Display
27| ^
28| In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/eglplatform.h:118:0,
29| from /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/EGL/egl.h:36,
30| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration_p.h:51,
31| from /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:55:
32| /OE/build/oe-core/tmp-glibc/sysroots/qemux86-64/usr/include/X11/Xlib.h:499:26: note: previous declaration 'typedef struct _XDisplay Display'
33| typedef struct _XDisplay Display;
34| ^
35| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp: In member function 'virtual void* QEGLPlatformIntegration::nativeResourceForScreen(const QByteArray&, QScreen*)':
36| /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qtbase/5.3.0+5.4.0-alpha1+gitAUTOINC+8456adf0ee-r0/git/src/platformsupport/eglconvenience/qeglplatformintegration.cpp:239:17: error: expected primary-expression before ':' token
37| case Display:
38| ^
39| Makefile:5486: recipe for target '.obj/qeglplatformintegration.o' failed
40
41This reverts commit dc685cf6331f5fb46285cf10d6464c2ecf41f73e.
42
43Will be partially resolved in newer revision with:
44https://codereview.qt-project.org/96220
45
46Change-Id: I7a6a926b7525d4f137824c71f2ec8cd089c21f13
47Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
48---
49 src/platformsupport/eglconvenience/qeglconvenience.cpp | 4 +++-
50 src/platformsupport/eglconvenience/qeglplatformcontext.cpp | 7 -------
51 2 files changed, 3 insertions(+), 8 deletions(-)
52
53diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp
54index c1a491c..7a0fc87 100644
55--- a/src/platformsupport/eglconvenience/qeglconvenience.cpp
56+++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp
57@@ -443,9 +443,11 @@ void q_printEglConfig(EGLDisplay display, EGLConfig config)
58 for (index = 0; attrs[index].attr != -1; ++index) {
59 EGLint value;
60 if (eglGetConfigAttrib(display, config, attrs[index].attr, &value)) {
61- qDebug("\t%s: %d", attrs[index].name, (int)value);
62+ qWarning("\t%s: %d\n", attrs[index].name, (int)value);
63 }
64 }
65+
66+ qWarning("\n");
67 }
68
69 #ifdef Q_OS_UNIX
70diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
71index 7cc3300..ccbd974a 100644
72--- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
73+++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
74@@ -37,7 +37,6 @@
75 #include <qpa/qplatformwindow.h>
76 #include <QOpenGLContext>
77 #include <QtPlatformHeaders/QEGLNativeContext>
78-#include <QDebug>
79
80 QT_BEGIN_NAMESPACE
81
82@@ -181,12 +180,6 @@ void QEGLPlatformContext::init(const QSurfaceFormat &format, QPlatformOpenGLCont
83 return;
84 }
85
86- static const bool printConfig = qgetenv("QT_QPA_EGLFS_DEBUG").toInt();
87- if (printConfig) {
88- qDebug() << "Created context for format" << format << "with config:";
89- q_printEglConfig(m_eglDisplay, m_eglConfig);
90- }
91-
92 updateFormatFromGL();
93 }
94
95--
962.3.1
97
diff --git a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch b/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch
deleted file mode 100644
index 84e5dbac..00000000
--- a/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From f2092e73beaffe163a5c7f66f73956477f0d97a1 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 19 Mar 2014 18:32:28 +0100
4Subject: [PATCH 06/13] qeglplatformintegration: Undefine CursorShape from X.h
5
6Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
7---
8 src/platformsupport/eglconvenience/qeglplatformintegration_p.h | 6 ++++++
9 1 file changed, 6 insertions(+)
10
11diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
12index 4d7adce..c9b6873 100644
13--- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
14+++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
15@@ -50,6 +50,12 @@
16 #include <QtCore/QVariant>
17 #include <EGL/egl.h>
18
19+// Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/
20+// /usr/include/X11/X.h:#define CursorShape 0 /* largest size that can be displayed */
21+#ifdef CursorShape
22+#undef CursorShape
23+#endif
24+
25 QT_BEGIN_NAMESPACE
26
27 class QEGLPlatformScreen;
28--
292.3.1
30
diff --git a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch b/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch
deleted file mode 100644
index 1bbda758..00000000
--- a/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 24e36583f44a17ce6d21e4392dd4f6a83ea9846a Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:27:30 -0500
4Subject: [PATCH 07/13] configure: bump path length from 256 to 512 characters
5
6Increase the path length that gets hardcoded into generated config.cpp file
7from 256 to 512 characters, as nativesdk path can be quite long.
8
9Signed-off-by: Denys Dmytriyenko <denys@ti.com>
10---
11 configure | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/configure b/configure
15index 996ce50..a40d471 100755
16--- a/configure
17+++ b/configure
18@@ -3622,7 +3622,7 @@ static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$
19 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
20
21 /* Installation Info */
22-static const char qt_configure_prefix_path_strs[][256 + 12] = {
23+static const char qt_configure_prefix_path_strs[][512 + 12] = {
24 #ifndef QT_BUILD_QMAKE
25 "qt_prfxpath=$QT_SYSROOT_PREFIX",
26 "qt_docspath=$QT_SYSROOT_DOCS",
27--
282.3.1
29
diff --git a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
deleted file mode 100644
index f908e780..00000000
--- a/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1From 7886d849487f0c0bbfa54f9ef9708fdc9cc84c04 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Wed, 5 Feb 2014 18:35:08 +0100
4Subject: [PATCH 08/13] eglfs: fix egl error for platforms only supporting one
5 window/surface
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10running qmlscene -platform eglfs <filename>.qml
11
12caused
13
14EGL Error : Could not create the egl surface: error = 0x3003
15
16Rebased version of [1-2]
17
18Upstream-Status: unknown
19
20[1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch
21[2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch
22
23Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25---
26 src/plugins/platforms/eglfs/qeglfswindow.cpp | 16 +++++++++++++++-
27 1 file changed, 15 insertions(+), 1 deletion(-)
28
29diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp
30index f5839e0..5ebde6d 100644
31--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp
32+++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp
33@@ -66,6 +66,15 @@ void QEglFSWindow::create()
34
35 m_flags = Created;
36
37+ static EGLSurface __singleWindowSurface;
38+ if(QEglFSHooks::hooks() && ! QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows) && (__singleWindowSurface)) {
39+ m_surface = __singleWindowSurface;
40+#ifdef QEGL_EXTRA_DEBUG
41+ qWarning("Surface recreate request, re-using %x\n", m_surface);
42+#endif
43+ return;
44+ }
45+
46 if (window()->type() == Qt::Desktop)
47 return;
48
49@@ -79,7 +88,7 @@ void QEglFSWindow::create()
50 return;
51 }
52
53-#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK)
54+#if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) || defined(EGL_API_FB)
55 // We can have either a single OpenGL window or multiple raster windows.
56 // Other combinations cannot work.
57 qFatal("EGLFS: OpenGL windows cannot be mixed with others.");
58@@ -99,6 +108,11 @@ void QEglFSWindow::create()
59
60 resetSurface();
61
62+ if(QEglFSHooks::hooks() && !QEglFSHooks::hooks()->hasCapability(QPlatformIntegration::MultipleWindows))
63+ {
64+ __singleWindowSurface = m_surface;
65+ }
66+
67 screen->setPrimarySurface(m_surface);
68
69 if (isRaster()) {
70--
712.3.1
72
diff --git a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch
deleted file mode 100644
index f7062ffe..00000000
--- a/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch
+++ /dev/null
@@ -1,157 +0,0 @@
1From 47ee1da94f74c46fd692bcd55c2770f6c3be92f3 Mon Sep 17 00:00:00 2001
2From: Jani Hautakangas <jani.hautakangas@ixonos.com>
3Date: Thu, 16 May 2013 09:52:07 +0300
4Subject: [PATCH 09/13] QOpenGLPaintDevice sub-area support
5
6Allows creating QOpenGLPaintDevice targetting sub-area
7of binded framebuffer.
8
9Upstream-Status: Pending
10
11Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/gui/opengl/qopenglpaintdevice.cpp | 11 +++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintdevice_p.h | 1 +
18 src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++--
19 src/gui/opengl/qopenglpaintengine_p.h | 1 +
20 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
21 6 files changed, 23 insertions(+), 3 deletions(-)
22
23diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
24index a08d26f..cff3155 100644
25--- a/src/gui/opengl/qopenglpaintdevice.cpp
26+++ b/src/gui/opengl/qopenglpaintdevice.cpp
27@@ -135,6 +135,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
28 {
29 }
30
31+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
32+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
33+{
34+ d_ptr->offset = QPoint(x,y);
35+}
36+
37 /*!
38 \internal
39 */
40@@ -212,6 +218,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
41 return d_ptr->ctx;
42 }
43
44+QPoint QOpenGLPaintDevice::offset() const
45+{
46+ return d_ptr->offset;
47+}
48+
49 /*!
50 Returns the pixel size of the paint device.
51
52diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
53index 10cee84..a6683c5 100644
54--- a/src/gui/opengl/qopenglpaintdevice.h
55+++ b/src/gui/opengl/qopenglpaintdevice.h
56@@ -53,12 +53,14 @@ public:
57 QOpenGLPaintDevice();
58 explicit QOpenGLPaintDevice(const QSize &size);
59 QOpenGLPaintDevice(int width, int height);
60+ QOpenGLPaintDevice(int x, int y, int width, int height);
61 virtual ~QOpenGLPaintDevice();
62
63 int devType() const { return QInternal::OpenGL; }
64 QPaintEngine *paintEngine() const;
65
66 QOpenGLContext *context() const;
67+ QPoint offset() const;
68 QSize size() const;
69 void setSize(const QSize &size);
70 void setDevicePixelRatio(qreal devicePixelRatio);
71diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h
72index 0b01129..211f2f3 100644
73--- a/src/gui/opengl/qopenglpaintdevice_p.h
74+++ b/src/gui/opengl/qopenglpaintdevice_p.h
75@@ -65,6 +65,7 @@ public:
76
77 public:
78 QSize size;
79+ QPoint offset;
80 QOpenGLContext *ctx;
81
82 qreal dpmx;
83diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
84index 8eeaa31..e17520e 100644
85--- a/src/gui/opengl/qopenglpaintengine.cpp
86+++ b/src/gui/opengl/qopenglpaintengine.cpp
87@@ -2080,7 +2080,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
88 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
89 d->vertexAttributeArraysEnabledState[i] = false;
90
91+ const QPoint offset = d->device->offset();
92 const QSize sz = d->device->size();
93+ d->x = offset.x();
94+ d->y = offset.y();
95 d->width = sz.width();
96 d->height = sz.height();
97 d->mode = BrushDrawingMode;
98@@ -2167,7 +2170,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
99 d->device->ensureActiveTarget();
100
101 d->transferMode(BrushDrawingMode);
102- d->funcs.glViewport(0, 0, d->width, d->height);
103+ d->funcs.glViewport(d->x, d->y, d->width, d->height);
104 d->needsSync = false;
105 d->shaderManager->setDirty();
106 d->syncGlState();
107@@ -2209,6 +2212,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
108 if (bounds == QRect(0, 0, width, height)) {
109 funcs.glDisable(GL_SCISSOR_TEST);
110 } else {
111+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
112 funcs.glEnable(GL_SCISSOR_TEST);
113 setScissor(bounds);
114 }
115@@ -2217,12 +2221,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
116
117 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
118 {
119- const int left = rect.left();
120+ const int left = rect.left() + x;
121 const int width = rect.width();
122 int bottom = height - (rect.top() + rect.height());
123 if (device->paintFlipped()) {
124 bottom = rect.top();
125 }
126+ bottom += y;
127 const int height = rect.height();
128
129 funcs.glScissor(left, bottom, width, height);
130diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
131index 9722ea3..07e3163 100644
132--- a/src/gui/opengl/qopenglpaintengine_p.h
133+++ b/src/gui/opengl/qopenglpaintengine_p.h
134@@ -264,6 +264,7 @@ public:
135 QOpenGL2PaintEngineEx* q;
136 QOpenGLEngineShaderManager* shaderManager;
137 QOpenGLPaintDevice* device;
138+ int x, y;
139 int width, height;
140 QOpenGLContext *ctx;
141 EngineMode mode;
142diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
143index cd268cd..997bc35 100644
144--- a/src/gui/opengl/qopengltextureglyphcache.cpp
145+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
146@@ -310,7 +310,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
147 funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
148
149 if (pex != 0) {
150- funcs->glViewport(0, 0, pex->width, pex->height);
151+ funcs->glViewport(pex->x, pex->y, pex->width, pex->height);
152 pex->updateClipScissorTest();
153 } else {
154 if (m_vao.isCreated()) {
155--
1562.3.1
157
diff --git a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch b/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch
deleted file mode 100644
index 188ae157..00000000
--- a/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From d6158c2cb6ce64af531246636c3b2adb35afeb72 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 18 Dec 2014 13:41:09 +0100
4Subject: [PATCH 10/13] Make Qt5GuiConfigExtras.cmake find gl(es) include dir
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9In configure QMAKE_INCDIR_OPENGL is set with pkg-config. Without
10PKG_CONFIG_ALLOW_SYSTEM_CFLAGS set, pkg-config returns paths outside
11/usr/include only (in my case /usr/include/libdrm). With NO_DEFAULT_PATH set
12gl(es) include directories cannot be found. Cmake builds depending on
13Qt5Gui error out with
14
15| Failed to find "GLES2/gl2.h" in "/usr/include/libdrm"
16
17Upstream-Status: submitted [1]
18
19[1] https://bugreports.qt-project.org/browse/QTBUG-43445
20
21Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
22---
23 src/gui/Qt5GuiConfigExtras.cmake.in | 3 ---
24 1 file changed, 3 deletions(-)
25
26diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
27index 9a846d4..07869ef 100644
28--- a/src/gui/Qt5GuiConfigExtras.cmake.in
29+++ b/src/gui/Qt5GuiConfigExtras.cmake.in
30@@ -57,9 +57,6 @@ set(Qt5Gui_OPENGL_LIBRARIES Qt5::Gui_GLESv2)
31 set(_GL_INCDIRS $$CMAKE_GL_INCDIRS)
32 find_path(_qt5gui_OPENGL_INCLUDE_DIR $$CMAKE_GL_HEADER_NAME
33 PATHS ${_GL_INCDIRS}
34-!!IF !mac
35- NO_DEFAULT_PATH
36-!!ENDIF
37 )
38 if (NOT _qt5gui_OPENGL_INCLUDE_DIR)
39 message(FATAL_ERROR \"Failed to find \\\"$$CMAKE_GL_HEADER_NAME\\\" in \\\"${_GL_INCDIRS}\\\".\")
40--
412.3.1
42
diff --git a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch
deleted file mode 100644
index b0870c85..00000000
--- a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From fa0cf613bc9ef4de65de12791eedc337de85d911 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 16 Nov 2013 00:32:30 +0100
4Subject: [PATCH 11/13] Always build uic
5
6Even if we are not building gui or widgets. This tool is needed later
7as a native tool when compiling the target.
8
9Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6
10Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 src/src.pro | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/src/src.pro b/src/src.pro
17index 83f7587..9dbcf70 100644
18--- a/src/src.pro
19+++ b/src/src.pro
20@@ -163,7 +163,7 @@ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent
21 }
22 }
23 }
24-SUBDIRS += src_plugins src_tools_qdoc
25+SUBDIRS += src_plugins src_tools_qdoc src_tools_uic
26
27 nacl: SUBDIRS -= src_network src_testlib
28
29--
302.3.1
31
diff --git a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch b/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch
deleted file mode 100644
index 874bc697..00000000
--- a/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch
+++ /dev/null
@@ -1,68 +0,0 @@
1From 7943ec2256163f6049d442ff00f579a5cbff5acc Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Mon, 29 Oct 2012 20:07:49 -0700
4Subject: [PATCH 11/13] qmake: don't build it in configure, but allow to build
5 it separately
6
7* it is already built in qtbase-native, so we don't need it in configure
8* allow building a separate qmake for the target
9
10Upstream-Status: Inappropriate [configuration]
11 OE specific for native/target builds
12
13Signed-off-by: Yu Ke <ke.yu@intel.com>
14Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
15Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17 configure | 2 +-
18 qmake/qmake.pri | 3 ++-
19 qmake/qmake.pro | 2 ++
20 3 files changed, 5 insertions(+), 2 deletions(-)
21---
22 configure | 2 +-
23 qmake/qmake.pri | 3 ++-
24 qmake/qmake.pro | 1 +
25 3 files changed, 4 insertions(+), 2 deletions(-)
26
27diff --git a/configure b/configure
28index a40d471..8d15f59 100755
29--- a/configure
30+++ b/configure
31@@ -3724,7 +3724,7 @@ setBootstrapEvalVariable()
32
33
34 # build qmake
35-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
36+if false; then ###[ '!' -f "$outpath/bin/qmake" ];
37 echo "Creating qmake..."
38
39 mkdir -p "$outpath/qmake" || exit
40diff --git a/qmake/qmake.pri b/qmake/qmake.pri
41index 4de41d6..69982b7 100644
42--- a/qmake/qmake.pri
43+++ b/qmake/qmake.pri
44@@ -82,7 +82,8 @@ bootstrap { #Qt code
45 qjsonparser.cpp \
46 qjsonarray.cpp \
47 qjsonobject.cpp \
48- qjsonvalue.cpp
49+ qjsonvalue.cpp \
50+ qdebug.cpp
51
52 HEADERS+= \
53 qbitarray.h \
54diff --git a/qmake/qmake.pro b/qmake/qmake.pro
55index 89d6ea5..0ff4a96 100644
56--- a/qmake/qmake.pro
57+++ b/qmake/qmake.pro
58@@ -8,6 +8,7 @@ CONFIG -= qt
59 DEFINES += \
60 QT_BUILD_QMAKE \
61 PROEVALUATOR_FULL
62+TARGET = qmake
63
64 VPATH += \
65 ../src/corelib/global \
66--
672.3.1
68
diff --git a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
deleted file mode 100644
index 06476cb8..00000000
--- a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch
+++ /dev/null
@@ -1,108 +0,0 @@
1From 932cb18540fc4634e02d048cf9ab9e519ce0811d Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH 12/13] Add -external-hostbindir option for native(sdk)
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25Signed-off-by: Simon Busch <morphis@gravedo.de>
26Signed-off-by: Jonathan Liu <net147@gmail.com>
27Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
28---
29 qmake/property.cpp | 1 +
30 src/corelib/global/qlibraryinfo.cpp | 3 ++-
31 src/corelib/global/qlibraryinfo.h | 1 +
32 tools/configure/configureapp.cpp | 8 ++++++++
33 4 files changed, 12 insertions(+), 1 deletion(-)
34
35diff --git a/qmake/property.cpp b/qmake/property.cpp
36index 051e056..50da6ed 100644
37--- a/qmake/property.cpp
38+++ b/qmake/property.cpp
39@@ -67,6 +67,7 @@ static const struct {
40 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
41 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
42 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
43+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
44 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
45 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
46 };
47diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
48index c418c5e..c8c4188 100644
49--- a/src/corelib/global/qlibraryinfo.cpp
50+++ b/src/corelib/global/qlibraryinfo.cpp
51@@ -348,7 +348,7 @@ QLibraryInfo::isDebugBuild()
52 */
53
54 static const struct {
55- char key[19], value[13];
56+ char key[21], value[13];
57 } qtConfEntries[] = {
58 { "Prefix", "." },
59 { "Documentation", "doc" }, // should be ${Data}/doc
60@@ -374,6 +374,7 @@ static const struct {
61 { "HostBinaries", "bin" },
62 { "HostLibraries", "lib" },
63 { "HostData", "." },
64+ { "ExternalHostBinaries", "" },
65 { "TargetSpec", "" },
66 { "HostSpec", "" },
67 #endif
68diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
69index 543c4b3..a02e03a 100644
70--- a/src/corelib/global/qlibraryinfo.h
71+++ b/src/corelib/global/qlibraryinfo.h
72@@ -80,6 +80,7 @@ public:
73 HostBinariesPath,
74 HostLibrariesPath,
75 HostDataPath,
76+ ExternalHostBinariesPath,
77 TargetSpecPath,
78 HostSpecPath,
79 LastHostPath = HostSpecPath,
80diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
81index 6e9d4aa..0ca4daf 100644
82--- a/tools/configure/configureapp.cpp
83+++ b/tools/configure/configureapp.cpp
84@@ -1191,6 +1191,13 @@ void Configure::parseCmdLine()
85 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
86 }
87
88+ else if (configCmdLine.at(i) == "-external-hostbindir") {
89+ ++i;
90+ if (i == argCount)
91+ break;
92+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
93+ }
94+
95 else if (configCmdLine.at(i) == "-make-tool") {
96 ++i;
97 if (i == argCount)
98@@ -4004,6 +4011,7 @@ void Configure::generateQConfigCpp()
99 << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
100 << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
101 << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
102+ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl
103 << " \"qt_targspec=" << targSpec << "\"," << endl
104 << " \"qt_hostspec=" << hostSpec << "\"," << endl
105 << "#endif" << endl
106--
1072.3.1
108
diff --git a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch b/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch
deleted file mode 100644
index 671c6365..00000000
--- a/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch
+++ /dev/null
@@ -1,72 +0,0 @@
1From 62ec5bc2946911b2cd2f577d58f07f566d84c88d Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Thu, 22 Jan 2015 16:09:35 +0100
4Subject: [PATCH 12/13] Set paths for target properly
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Upstream-Status: Inappropriate [OE specific]
10
11Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
12---
13 configure | 43 +++++++++++++++++++++----------------------
14 1 file changed, 21 insertions(+), 22 deletions(-)
15
16diff --git a/configure b/configure
17index 8d15f59..bf2bac0 100755
18--- a/configure
19+++ b/configure
20@@ -3639,28 +3639,27 @@ static const char qt_configure_prefix_path_strs[][512 + 12] = {
21 "qt_xmplpath=$QT_SYSROOT_EXAMPLES",
22 "qt_tstspath=$QT_SYSROOT_TESTS",
23 #else
24- "qt_prfxpath=$QT_INSTALL_PREFIX",
25- "qt_docspath=$QT_INSTALL_DOCS",
26- "qt_hdrspath=$QT_INSTALL_HEADERS",
27- "qt_libspath=$QT_INSTALL_LIBS",
28- "qt_lbexpath=$QT_INSTALL_LIBEXECS",
29- "qt_binspath=$QT_INSTALL_BINS",
30- "qt_plugpath=$QT_INSTALL_PLUGINS",
31- "qt_impspath=$QT_INSTALL_IMPORTS",
32- "qt_qml2path=$QT_INSTALL_QML",
33- "qt_adatpath=$QT_INSTALL_ARCHDATA",
34- "qt_datapath=$QT_INSTALL_DATA",
35- "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
36- "qt_xmplpath=$QT_INSTALL_EXAMPLES",
37- "qt_tstspath=$QT_INSTALL_TESTS",
38- "qt_ssrtpath=$CFG_SYSROOT",
39- "qt_hpfxpath=$QT_HOST_PREFIX",
40- "qt_hbinpath=$QT_HOST_BINS",
41- "qt_hlibpath=$QT_HOST_LIBS",
42- "qt_hdatpath=$QT_HOST_DATA",
43- "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
44- "qt_targspec=$shortxspec",
45- "qt_hostspec=$shortspec",
46+ "qt_prfxpath=$QT_SYSROOT_PREFIX",
47+ "qt_docspath=$QT_SYSROOT_DOCS",
48+ "qt_hdrspath=$QT_SYSROOT_HEADERS",
49+ "qt_libspath=$QT_SYSROOT_LIBS",
50+ "qt_lbexpath=$QT_SYSROOT_LIBEXECS",
51+ "qt_binspath=$QT_SYSROOT_BINS",
52+ "qt_plugpath=$QT_SYSROOT_PLUGINS",
53+ "qt_impspath=$QT_SYSROOT_IMPORTS",
54+ "qt_qml2path=$QT_SYSROOT_QML",
55+ "qt_adatpath=$QT_SYSROOT_ARCHDATA",
56+ "qt_datapath=$QT_SYSROOT_DATA",
57+ "qt_trnspath=$QT_SYSROOT_TRANSLATIONS",
58+ "qt_xmplpath=$QT_SYSROOT_EXAMPLES",
59+ "qt_tstspath=$QT_SYSROOT_TESTS",
60+ "qt_ssrtpath=",
61+ "qt_hpfxpath=$QT_SYSROOT_PREFIX",
62+ "qt_hbinpath=$QT_SYSROOT_BINS",
63+ "qt_hlibpath=$QT_SYSROOT_LIBS",
64+ "qt_hdatpath=$QT_SYSROOT_LIBS/qt5",
65+ "qt_targspec=linux-g++",
66+ "qt_hostspec=linux-g++",
67 #endif
68 };
69 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
70--
712.3.1
72
diff --git a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch b/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch
deleted file mode 100644
index 1fa4aca4..00000000
--- a/recipes-qt/qt5/qtbase/0013-Fix-build-of-egl-integration.patch
+++ /dev/null
@@ -1,196 +0,0 @@
1From 2cece4539990f9e7b0239681bd2fc2808aeb8dbc Mon Sep 17 00:00:00 2001
2From: Stephan Binner <stephan.binner@basyskom.com>
3Date: Mon, 2 Feb 2015 13:10:50 +0100
4Subject: [PATCH 13/13] Fix build of egl integration
5
6Add missing includes and reorder includes to avoid X defines breakage
7
8Upstream-Status: Backport from 5.4 branch https://codereview.qt-project.org/#/c/105116/
9
10Change-Id: Iaf95ae2488df3d3301436262ed79f7091b4be0a9
11Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
12Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
13---
14 .../eglconvenience/qeglplatformcontext_p.h | 1 +
15 .../eglconvenience/qeglplatformintegration_p.h | 2 +-
16 src/plugins/platforms/eglfs/qeglfscontext.cpp | 13 +++++++------
17 src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 2 +-
18 src/plugins/platforms/eglfs/qeglfsintegration.cpp | 20 ++++++++++----------
19 src/plugins/platforms/eglfs/qeglfsscreen.cpp | 4 +++-
20 src/plugins/platforms/eglfs/qeglfswindow.cpp | 6 ++++--
21 .../platforms/minimalegl/qminimaleglwindow.cpp | 4 ++--
22 8 files changed, 29 insertions(+), 23 deletions(-)
23
24diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
25index 7825c7b..0c10710 100644
26--- a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
27+++ b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
28@@ -45,6 +45,7 @@
29 // We mean it.
30 //
31
32+#include <QtCore/qtextstream.h>
33 #include <qpa/qplatformwindow.h>
34 #include <qpa/qplatformopenglcontext.h>
35 #include <QtCore/QVariant>
36diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
37index c9b6873..a0aab03 100644
38--- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
39+++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
40@@ -45,9 +45,9 @@
41 // We mean it.
42 //
43
44+#include <QtCore/QVariant>
45 #include <qpa/qplatformintegration.h>
46 #include <qpa/qplatformnativeinterface.h>
47-#include <QtCore/QVariant>
48 #include <EGL/egl.h>
49
50 // Undefine CursorShape from X.h, which is causing breakage in Qt::CursorShape in platformsupport/eglconvenience/
51diff --git a/src/plugins/platforms/eglfs/qeglfscontext.cpp b/src/plugins/platforms/eglfs/qeglfscontext.cpp
52index 6216fa8..6470280 100644
53--- a/src/plugins/platforms/eglfs/qeglfscontext.cpp
54+++ b/src/plugins/platforms/eglfs/qeglfscontext.cpp
55@@ -31,15 +31,16 @@
56 **
57 ****************************************************************************/
58
59-#include "qeglfscontext.h"
60-#include "qeglfswindow.h"
61-#include "qeglfshooks.h"
62+#include <QtGui/QSurface>
63+#include <QtDebug>
64
65+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
66 #include <QtPlatformSupport/private/qeglconvenience_p.h>
67 #include <QtPlatformSupport/private/qeglpbuffer_p.h>
68-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
69-#include <QtGui/QSurface>
70-#include <QtDebug>
71+
72+#include "qeglfswindow.h"
73+#include "qeglfshooks.h"
74+#include "qeglfscontext.h"
75
76 QT_BEGIN_NAMESPACE
77
78diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
79index 26d77a2..120c603 100644
80--- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
81+++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
82@@ -31,10 +31,10 @@
83 **
84 ****************************************************************************/
85
86-#include "qeglfshooks.h"
87 #include <QtPlatformSupport/private/qeglplatformcursor_p.h>
88 #include <QtPlatformSupport/private/qeglconvenience_p.h>
89 #include <QtCore/QRegularExpression>
90+#include "qeglfshooks.h"
91
92 #if defined(Q_OS_LINUX)
93 #include <fcntl.h>
94diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
95index 2a4eae3..fbdd1d4 100644
96--- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp
97+++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
98@@ -31,26 +31,26 @@
99 **
100 ****************************************************************************/
101
102-#include "qeglfsintegration.h"
103+#include <QtCore/qtextstream.h>
104+#include <QtGui/private/qguiapplication_p.h>
105+
106+#include <qpa/qplatformwindow.h>
107+#include <QtGui/QSurfaceFormat>
108+#include <QtGui/QOpenGLContext>
109+#include <QtGui/QScreen>
110+#include <QtGui/QOffscreenSurface>
111+#include <qpa/qplatformcursor.h>
112
113+#include "qeglfsintegration.h"
114 #include "qeglfswindow.h"
115 #include "qeglfshooks.h"
116 #include "qeglfscontext.h"
117
118-#include <QtGui/private/qguiapplication_p.h>
119-
120 #include <QtPlatformSupport/private/qeglconvenience_p.h>
121 #include <QtPlatformSupport/private/qeglplatformcontext_p.h>
122 #include <QtPlatformSupport/private/qeglpbuffer_p.h>
123 #include <QtPlatformHeaders/QEGLNativeContext>
124
125-#include <qpa/qplatformwindow.h>
126-#include <QtGui/QSurfaceFormat>
127-#include <QtGui/QOpenGLContext>
128-#include <QtGui/QScreen>
129-#include <QtGui/QOffscreenSurface>
130-#include <qpa/qplatformcursor.h>
131-
132 #include <EGL/egl.h>
133
134 static void initResources()
135diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.cpp b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
136index cd68540..bc93fe2 100644
137--- a/src/plugins/platforms/eglfs/qeglfsscreen.cpp
138+++ b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
139@@ -31,10 +31,12 @@
140 **
141 ****************************************************************************/
142
143+#include <QtCore/qtextstream.h>
144+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
145+
146 #include "qeglfsscreen.h"
147 #include "qeglfswindow.h"
148 #include "qeglfshooks.h"
149-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
150
151 QT_BEGIN_NAMESPACE
152
153diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp
154index 5ebde6d..2c05979 100644
155--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp
156+++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp
157@@ -31,8 +31,7 @@
158 **
159 ****************************************************************************/
160
161-#include "qeglfswindow.h"
162-#include "qeglfshooks.h"
163+#include <QtCore/qtextstream.h>
164 #include <qpa/qwindowsysteminterface.h>
165 #include <qpa/qplatformintegration.h>
166 #include <private/qguiapplication_p.h>
167@@ -40,6 +39,9 @@
168 #include <QtPlatformSupport/private/qeglplatformcursor_p.h>
169 #include <QtPlatformSupport/private/qeglconvenience_p.h>
170
171+#include "qeglfswindow.h"
172+#include "qeglfshooks.h"
173+
174 #include <QtDebug>
175
176 QT_BEGIN_NAMESPACE
177diff --git a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
178index 906a130..d4bee2c 100644
179--- a/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
180+++ b/src/plugins/platforms/minimalegl/qminimaleglwindow.cpp
181@@ -31,10 +31,10 @@
182 **
183 ****************************************************************************/
184
185-#include "qminimaleglwindow.h"
186-
187 #include <qpa/qwindowsysteminterface.h>
188
189+#include "qminimaleglwindow.h"
190+
191 QT_BEGIN_NAMESPACE
192
193 QMinimalEglWindow::QMinimalEglWindow(QWindow *w)
194--
1952.3.1
196
diff --git a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch b/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch
deleted file mode 100644
index fb897c90..00000000
--- a/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 137890aa64442866a861f0a9f028ee632f19cae4 Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:22:34 -0500
4Subject: [PATCH 13/13] configure: preserve built qmake and swap with native
5 one
6
7Let configure script build the real qmake, but right after it's built, swap
8it with a native qmake for further internal use, preserving the real one.
9
10Signed-off-by: Denys Dmytriyenko <denys@ti.com>
11---
12 configure | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/configure b/configure
16index a40d471..c007427 100755
17--- a/configure
18+++ b/configure
19@@ -3874,6 +3874,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
20
21 (cd "$outpath/qmake"; "$MAKE") || exit 2
22 fi # Build qmake
23+mv "$outpath/bin/qmake" "$outpath/bin/qmake-real"
24+mv "$outpath/bin/qmake-native" "$outpath/bin/qmake"
25
26 echo "Running configuration tests..."
27
28--
292.3.1
30
diff --git a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch b/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
deleted file mode 100644
index 42159ef4..00000000
--- a/recipes-qt/qt5/qtbase/0014-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From a343de8e9b85b98f18446d045afbf6f1d3f6c5b4 Mon Sep 17 00:00:00 2001
2From: "Richard J. Moore" <rich@kde.org>
3Date: Sat, 21 Feb 2015 17:43:21 +0000
4Subject: [PATCH 14/14] Fix a division by zero when processing malformed BMP
5 files.
6
7This fixes a division by 0 when processing a maliciously crafted BMP
8file. No impact beyond DoS.
9
10Upstream-Status: Backport from 5.4 branch
11
12Task-number: QTBUG-44547
13Change-Id: Ifcded2c0aa712e90d23e6b3969af0ec3add53973
14Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
15Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
16---
17 src/gui/image/qbmphandler.cpp | 8 ++++++++
18 1 file changed, 8 insertions(+)
19
20diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
21index 21c1a2f..df66499 100644
22--- a/src/gui/image/qbmphandler.cpp
23+++ b/src/gui/image/qbmphandler.cpp
24@@ -314,12 +314,20 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
25 }
26 } else if (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32)) {
27 red_shift = calc_shift(red_mask);
28+ if (((red_mask >> red_shift) + 1) == 0)
29+ return false;
30 red_scale = 256 / ((red_mask >> red_shift) + 1);
31 green_shift = calc_shift(green_mask);
32+ if (((green_mask >> green_shift) + 1) == 0)
33+ return false;
34 green_scale = 256 / ((green_mask >> green_shift) + 1);
35 blue_shift = calc_shift(blue_mask);
36+ if (((blue_mask >> blue_shift) + 1) == 0)
37+ return false;
38 blue_scale = 256 / ((blue_mask >> blue_shift) + 1);
39 alpha_shift = calc_shift(alpha_mask);
40+ if (((alpha_mask >> alpha_shift) + 1) == 0)
41+ return false;
42 alpha_scale = 256 / ((alpha_mask >> alpha_shift) + 1);
43 } else if (comp == BMP_RGB && (nbits == 24 || nbits == 32)) {
44 blue_mask = 0x000000ff;
45--
462.3.1
47
diff --git a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake b/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
deleted file mode 100644
index 6f0042b2..00000000
--- a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake
+++ /dev/null
@@ -1 +0,0 @@
1set( OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS} )