summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2013-11-02 19:06:14 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2014-01-12 15:01:37 +0100
commitc908fe4ebd5a04813be0b83c173fae182bb22728 (patch)
treeac8f089c2dce89598cf96532eac24cfb33567e4b /recipes-qt/qt5/qtbase
parent775d77e482f1ea203c78003cccd2547075fd720f (diff)
downloadmeta-qt5-c908fe4ebd5a04813be0b83c173fae182bb22728.tar.gz
qt5: upgrade to 5.2.0
* drop 0027-Fix-misaligned-selection-region-with-text-when-cente.patch resolved in upstream commit 5d8a882c11201a29475c5ea71cfb76c9de6573f5 * drop 0020-Use-BGRA-extension-in-bindTexture.patch resolved in upstream commit e1325cf26e146b68725cc1a0a02b274ce3dfbe5c * drop 0008-wayland-scanner-disable-silent-rules.patch resolved upstream in: commit 2ff2a7c32d76b9e58b800f12469f112cfdb6ad3c Author: Jan Arne Petersen <jan.petersen@kdab.com> Date: Fri Jul 19 14:35:19 2013 +0200 Fix wayland-scanner to work with CONFIG+=silent * squash to match more with structure of https://github.com/meta-qt5/qtbase/tree/stable * qtmodules: bump SRCREVs for 5.2.0 tags now all modules using qt5-git should be newer than any 5.1.* version * qtbase: fix paths in packageconfig *.pc files include- and lib-paths contained build-sysroot paths * qtwebkit: Explicitly add ICU libraries to LIBS fails to build without this * qtjsbackend: remove for git versions Found in [1]: Qt Qml is now using its own built-in Javascript engine and does not depend on V8 anymore. As such the QtJSBackend shared library has disappeared. [1] http://blog.qt.digia.com/blog/2013/09/30/qt-5-2-alpha-available/ * qt5: Upgrade 5.1.1 recipes to 5.2.0 to match git recipes qtjsbackend is now completely gone it allows to share more .patch files and configuration in .inc again Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> 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.patch304
-rw-r--r--recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch36
-rw-r--r--recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch228
-rw-r--r--recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch29
-rw-r--r--recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch117
-rw-r--r--recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch43
-rw-r--r--recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch37
-rw-r--r--recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch49
-rw-r--r--recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch85
-rw-r--r--recipes-qt/qt5/qtbase/0010-Always-build-uic.patch38
-rw-r--r--recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch30
-rw-r--r--recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch30
-rw-r--r--recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch30
-rw-r--r--recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch29
-rw-r--r--recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch48
-rw-r--r--recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch154
-rw-r--r--recipes-qt/qt5/qtbase/0014-enables-tslib-device-to-be-read-from-env-variable.patch35
17 files changed, 1322 insertions, 0 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
new file mode 100644
index 00000000..0976c343
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
@@ -0,0 +1,304 @@
1From f4fd2da9b29db23638ad07bd35f093f793241526 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/14] 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* OE_QMAKE_CXX in order to allow compiler version check to succeed
15 which allows WebKit to be enabled.
16
17* Other variables in order to let config.tests to use our -platform
18 settings
19
20* Add setBootstrapEvalVariable to bootstrap qmake with our environment
21 too, this allows us to use -platform linux-oe-g++ also for native
22 recipe
23
24* disable gdb_dwarf_index
25 * qmake is trying to call native gdb and we don't depend on gdb-native
26 (or even provide gdb-native)
27 * fixes errors like this:
28 /bin/sh: gdb: command not found
29 /bin/sh: line 0: test: -gt: unary operator expected
30 which are not fatal, but still misleading in do_configure output
31
32Upstream-Status: Pending
33
34Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
35---
36 configure | 54 ++++++++++++++++---
37 mkspecs/linux-oe-g++/qmake.conf | 40 ++++++++++++++
38 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++
39 3 files changed, 187 insertions(+), 7 deletions(-)
40 create mode 100644 mkspecs/linux-oe-g++/qmake.conf
41 create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
42
43diff --git a/configure b/configure
44index a330dd6..1b328ae 100755
45--- a/configure
46+++ b/configure
47@@ -324,6 +324,16 @@ getQMakeConf()
48 getSingleQMakeVariable "$1" "$specvals"
49 }
50
51+# OE qmake.conf is reading some variables from shell env
52+# read them from qmake.conf, replace qmake () syntax with shell and eval
53+getQEvalMakeConf()
54+{
55+ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
56+ EVAL=`eval "echo ${VAL}"`
57+# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
58+ eval "echo ${VAL}"
59+}
60+
61 getXQMakeConf()
62 {
63 if [ -z "$xspecvals" ]; then
64@@ -333,6 +343,16 @@ getXQMakeConf()
65 getSingleQMakeVariable "$1" "$xspecvals"
66 }
67
68+# OE qmake.conf is reading some variables from shell env
69+# read them from qmake.conf, replace qmake () syntax with shell and eval
70+getXQEvalMakeConf()
71+{
72+ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
73+ EVAL=`eval "echo ${VAL}"`
74+# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
75+ eval "echo ${VAL}"
76+}
77+
78 compilerSupportsFlag()
79 {
80 cat >conftest.cpp <<EOF
81@@ -548,6 +568,18 @@ fi
82 # initalize variables
83 #-------------------------------------------------------------------------------
84
85+# Export all OE variables for qmake.conf from shell env to QMakeVars
86+OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP"
87+for varname in $OE_VARIABLES; do
88+ qmakevarname="${varname}"
89+ cmd=`echo \
90+'if [ -n "\$OE_QMAKE_'${varname}'" ]; then
91+ QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'"
92+# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2
93+fi'`
94+ eval "$cmd"
95+done
96+
97 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
98 for varname in $SYSTEM_VARIABLES; do
99 qmakevarname="${varname}"
100@@ -3344,7 +3376,7 @@ if [ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_QGTKSTYLE" = "auto" ]; then
101 CFG_QGTKSTYLE=no
102 fi
103
104-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
105+QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX`
106
107 TEST_COMPILER=$QMAKE_CONF_COMPILER
108
109@@ -3379,7 +3411,7 @@ if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
110 exit 1
111 fi
112 fi
113-TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
114+TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS`
115
116 GCC_MACHINE_DUMP=
117 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
118@@ -3860,6 +3892,14 @@ setBootstrapVariable()
119 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
120 }
121
122+# OE qmake.conf is reading some variables from shell env
123+# read them from qmake.conf, replace qmake () syntax with shell and eval
124+setBootstrapEvalVariable()
125+{
126+ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
127+}
128+
129+
130 # build qmake
131 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
132 echo "Creating qmake..."
133@@ -3898,11 +3938,11 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
134 fi
135
136 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
137- setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
138- setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
139- setBootstrapVariable QMAKE_CFLAGS
140- setBootstrapVariable QMAKE_CXXFLAGS
141- setBootstrapVariable QMAKE_LFLAGS
142+ setBootstrapEvalVariable QMAKE_CC CC "$CC_TRANSFORM"
143+ setBootstrapEvalVariable QMAKE_CXX CXX "$CC_TRANSFORM"
144+ setBootstrapEvalVariable QMAKE_CFLAGS
145+ setBootstrapEvalVariable QMAKE_CXXFLAGS
146+ setBootstrapEvalVariable QMAKE_LFLAGS
147
148 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
149 setBootstrapVariable QMAKE_CFLAGS_RELEASE
150diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
151new file mode 100644
152index 0000000..ca26b10
153--- /dev/null
154+++ b/mkspecs/linux-oe-g++/qmake.conf
155@@ -0,0 +1,40 @@
156+#
157+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
158+#
159+
160+MAKEFILE_GENERATOR = UNIX
161+CONFIG += incremental
162+QMAKE_INCREMENTAL_STYLE = sublib
163+
164+include(../common/linux.conf)
165+
166+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
167+QMAKE_AR = $(OE_QMAKE_AR) cqs
168+QMAKE_STRIP = $(OE_QMAKE_STRIP)
169+QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER)
170+
171+include(../common/gcc-base-unix.conf)
172+
173+# *FLAGS from gcc-base.conf
174+QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
175+QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
176+QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
177+
178+include(../common/g++-unix.conf)
179+
180+# tc settings from g++-base.conf
181+QMAKE_COMPILER = $(OE_QMAKE_COMPILER)
182+QMAKE_CC = $(OE_QMAKE_CC)
183+QMAKE_CXX = $(OE_QMAKE_CXX)
184+
185+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
186+
187+QMAKE_LINK = $(OE_QMAKE_LINK)
188+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
189+QMAKE_LINK_C = $(OE_QMAKE_LINK)
190+QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
191+
192+# for the SDK
193+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
194+
195+load(qt_config)
196diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
197new file mode 100644
198index 0000000..dd12003
199--- /dev/null
200+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
201@@ -0,0 +1,100 @@
202+/****************************************************************************
203+**
204+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
205+** Contact: http://www.qt-project.org/legal
206+**
207+** This file is part of the qmake spec of the Qt Toolkit.
208+**
209+** $QT_BEGIN_LICENSE:LGPL$
210+** Commercial License Usage
211+** Licensees holding valid commercial Qt licenses may use this file in
212+** accordance with the commercial license agreement provided with the
213+** Software or, alternatively, in accordance with the terms contained in
214+** a written agreement between you and Digia. For licensing terms and
215+** conditions see http://qt.digia.com/licensing. For further information
216+** use the contact form at http://qt.digia.com/contact-us.
217+**
218+** GNU Lesser General Public License Usage
219+** Alternatively, this file may be used under the terms of the GNU Lesser
220+** General Public License version 2.1 as published by the Free Software
221+** Foundation and appearing in the file LICENSE.LGPL included in the
222+** packaging of this file. Please review the following information to
223+** ensure the GNU Lesser General Public License version 2.1 requirements
224+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
225+**
226+** In addition, as a special exception, Digia gives you certain additional
227+** rights. These rights are described in the Digia Qt LGPL Exception
228+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
229+**
230+** GNU General Public License Usage
231+** Alternatively, this file may be used under the terms of the GNU
232+** General Public License version 3.0 as published by the Free Software
233+** Foundation and appearing in the file LICENSE.GPL included in the
234+** packaging of this file. Please review the following information to
235+** ensure the GNU General Public License version 3.0 requirements will be
236+** met: http://www.gnu.org/copyleft/gpl.html.
237+**
238+**
239+** $QT_END_LICENSE$
240+**
241+****************************************************************************/
242+
243+#ifndef QPLATFORMDEFS_H
244+#define QPLATFORMDEFS_H
245+
246+// Get Qt defines/settings
247+
248+#include "qglobal.h"
249+
250+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
251+
252+// 1) need to reset default environment if _BSD_SOURCE is defined
253+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
254+// 3) it seems older glibc need this to include the X/Open stuff
255+#ifndef _GNU_SOURCE
256+# define _GNU_SOURCE
257+#endif
258+
259+#include <unistd.h>
260+
261+
262+// We are hot - unistd.h should have turned on the specific APIs we requested
263+
264+#include <features.h>
265+#include <pthread.h>
266+#include <dirent.h>
267+#include <fcntl.h>
268+#include <grp.h>
269+#include <pwd.h>
270+#include <signal.h>
271+
272+#include <sys/types.h>
273+#include <sys/ioctl.h>
274+#include <sys/ipc.h>
275+#include <sys/time.h>
276+#include <sys/shm.h>
277+#include <sys/socket.h>
278+#include <sys/stat.h>
279+#include <sys/wait.h>
280+#include <netinet/in.h>
281+#ifndef QT_NO_IPV6IFNAME
282+#include <net/if.h>
283+#endif
284+
285+#define QT_USE_XOPEN_LFS_EXTENSIONS
286+#include "../common/posix/qplatformdefs.h"
287+
288+#undef QT_SOCKLEN_T
289+
290+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
291+#define QT_SOCKLEN_T socklen_t
292+#else
293+#define QT_SOCKLEN_T int
294+#endif
295+
296+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
297+#define QT_SNPRINTF ::snprintf
298+#define QT_VSNPRINTF ::vsnprintf
299+#endif
300+
301+#endif // QPLATFORMDEFS_H
302--
3031.8.5.2
304
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
new file mode 100644
index 00000000..afc25cc4
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
@@ -0,0 +1,36 @@
1From c6c1e780ed6a443a0c68c3200aeea9ced76f444c 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/14] 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: Pending
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/corelib/global/qlibraryinfo.cpp | 5 ++++-
16 1 file changed, 4 insertions(+), 1 deletion(-)
17
18diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
19index 1c3b09f..c647a16 100644
20--- a/src/corelib/global/qlibraryinfo.cpp
21+++ b/src/corelib/global/qlibraryinfo.cpp
22@@ -149,7 +149,10 @@ QLibrarySettings::QLibrarySettings()
23
24 QSettings *QLibraryInfoPrivate::findConfiguration()
25 {
26- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
27+ QByteArray config = getenv("QT_CONF_PATH");
28+ QString qtconfig = QFile::decodeName(config);
29+ if(!QFile::exists(qtconfig))
30+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
31 #ifdef QT_BOOTSTRAPPED
32 if(!QFile::exists(qtconfig))
33 qtconfig = qt_libraryInfoFile();
34--
351.8.5.2
36
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
new file mode 100644
index 00000000..3f7854fd
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
@@ -0,0 +1,228 @@
1From 21c595fd0e386bea1a2e2b19323dc517bb2c7333 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/14] 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
16Upstream-Status: Pending
17
18Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
19---
20 configure | 15 +++++++++++++++
21 mkspecs/features/qt_functions.prf | 9 ++++++++-
22 mkspecs/features/qt_tool.prf | 3 +--
23 qmake/property.cpp | 1 +
24 qtbase.pro | 12 +++++++++---
25 src/corelib/global/qlibraryinfo.cpp | 3 ++-
26 src/corelib/global/qlibraryinfo.h | 1 +
27 tools/configure/configureapp.cpp | 8 ++++++++
28 8 files changed, 45 insertions(+), 7 deletions(-)
29
30diff --git a/configure b/configure
31index 1b328ae..46f7230 100755
32--- a/configure
33+++ b/configure
34@@ -785,6 +785,7 @@ QT_HOST_BINS=
35 QT_HOST_LIBS=
36 QT_HOST_DATA=
37 QT_EXT_PREFIX=
38+QT_EXTERNAL_HOST_BINS=
39
40 #flags for SQL drivers
41 QT_CFLAGS_PSQL=
42@@ -905,6 +906,7 @@ while [ "$#" -gt 0 ]; do
43 -testsdir| \
44 -hostdatadir| \
45 -hostbindir| \
46+ -external-hostbindir| \
47 -hostlibdir| \
48 -extprefix| \
49 -sysroot| \
50@@ -1118,6 +1120,9 @@ while [ "$#" -gt 0 ]; do
51 extprefix)
52 QT_EXT_PREFIX="$VAL"
53 ;;
54+ external-hostbindir)
55+ QT_EXTERNAL_HOST_BINS="$VAL"
56+ ;;
57 pkg-config)
58 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
59 CFG_PKGCONFIG="$VAL"
60@@ -2226,6 +2231,10 @@ Installation options:
61 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
62 (default HOSTPREFIX)
63
64+ -external-hostbindir <dir> Use external host executables instead of building them
65+ (not used by defaut)
66+
67+
68 Configure options:
69
70 The defaults (*) are usually acceptable. A plus (+) denotes a default value
71@@ -3133,6 +3142,11 @@ fi
72 # command line and environment validation
73 #-------------------------------------------------------------------------------
74
75+# default is empty, don't call makeabs if it is empty
76+if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
77+ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
78+fi
79+
80 # update QT_CONFIG to show our current predefined configuration
81 CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
82 case "$CFG_QCONFIG" in
83@@ -3820,6 +3834,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = {
84 "qt_hbinpath=$QT_HOST_BINS",
85 "qt_hlibpath=$QT_HOST_LIBS",
86 "qt_hdatpath=$QT_HOST_DATA",
87+ "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
88 "qt_targspec=$shortxspec",
89 "qt_hostspec=$shortspec",
90 #endif
91diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
92index 1dacfed..7229845 100644
93--- a/mkspecs/features/qt_functions.prf
94+++ b/mkspecs/features/qt_functions.prf
95@@ -193,7 +193,14 @@ defineTest(qtAddRpathLink) {
96 defineTest(qtPrepareTool) {
97 $$1 = $$eval(QT_TOOL.$${2}.binary)
98 isEmpty($$1) {
99- $$1 = $$[QT_HOST_BINS]/$$2
100+ $$1 = $$[QT_EXTERNAL_HOST_BINS]/$$2
101+ # for some reason isEmpty does not work here, FIXME before submitting upstream
102+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: calling built-in isEmpty(/OE/oe-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/qt5)
103+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: test function returned true
104+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: taking 'then' branch
105+ !exists($$[QT_EXTERNAL_HOST_BINS]/$$2) {
106+ $$1 = $$[QT_HOST_BINS]/$$2
107+ }
108 exists($$eval($$1).pl) {
109 $$1 = perl -w $$eval($$1).pl
110 } else: contains(QMAKE_HOST.os, Windows) {
111diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
112index f0864f9..50bfac8 100644
113--- a/mkspecs/features/qt_tool.prf
114+++ b/mkspecs/features/qt_tool.prf
115@@ -15,8 +15,7 @@ CONFIG += console
116
117 # If we are doing a prefix build, create a "module" pri which enables
118 # qtPrepareTool() to work with the non-installed build.
119-# Non-bootstrapped tools always need this because of the environment setup.
120-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
121+!build_pass:if(!host_build|!force_bootstrap|force_independent):!exists($$[QT_EXTERNAL_HOST_BINS]) {
122 isEmpty(MODULE):MODULE = $$TARGET
123
124 !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
125diff --git a/qmake/property.cpp b/qmake/property.cpp
126index e50485c..71291ad 100644
127--- a/qmake/property.cpp
128+++ b/qmake/property.cpp
129@@ -75,6 +75,7 @@ static const struct {
130 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
131 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
132 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
133+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
134 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
135 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
136 };
137diff --git a/qtbase.pro b/qtbase.pro
138index 7576db7..d51af0e 100644
139--- a/qtbase.pro
140+++ b/qtbase.pro
141@@ -70,16 +70,22 @@ CONFIG -= qt
142
143 #qmake
144 qmake.path = $$[QT_HOST_BINS]
145+qmake.files = $$OUT_PWD/bin/qmake
146+!isEmpty($$[QT_EXTERNAL_HOST_BINS]) {
147+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/bin/qmake
148+}
149 equals(QMAKE_HOST.os, Windows) {
150- qmake.files = $$OUT_PWD/bin/qmake.exe
151-} else {
152- qmake.files = $$OUT_PWD/bin/qmake
153+ qmake.files = $${qmake.files}.exe
154 }
155 INSTALLS += qmake
156
157 #syncqt
158 syncqt.path = $$[QT_HOST_BINS]
159 syncqt.files = $$PWD/bin/syncqt.pl
160+syncqt.files = $$PWD/bin/syncqt.pl
161+!isEmpty($$[QT_EXTERNAL_HOST_BINS]) {
162+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/bin/syncqt.pl
163+}
164 INSTALLS += syncqt
165
166 # If we are doing a prefix build, create a "module" pri which enables
167diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
168index c647a16..da82913 100644
169--- a/src/corelib/global/qlibraryinfo.cpp
170+++ b/src/corelib/global/qlibraryinfo.cpp
171@@ -281,7 +281,7 @@ QLibraryInfo::isDebugBuild()
172 */
173
174 static const struct {
175- char key[19], value[13];
176+ char key[21], value[13];
177 } qtConfEntries[] = {
178 { "Prefix", "." },
179 { "Documentation", "doc" }, // should be ${Data}/doc
180@@ -307,6 +307,7 @@ static const struct {
181 { "HostBinaries", "bin" },
182 { "HostLibraries", "lib" },
183 { "HostData", "." },
184+ { "ExternalHostBinaries", "" },
185 { "TargetSpec", "" },
186 { "HostSpec", "" },
187 #endif
188diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
189index 17864b5..a14bc0f 100644
190--- a/src/corelib/global/qlibraryinfo.h
191+++ b/src/corelib/global/qlibraryinfo.h
192@@ -84,6 +84,7 @@ public:
193 HostBinariesPath,
194 HostLibrariesPath,
195 HostDataPath,
196+ ExternalHostBinariesPath,
197 TargetSpecPath,
198 HostSpecPath,
199 LastHostPath = HostSpecPath,
200diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
201index e2fef2c..ab475c3 100644
202--- a/tools/configure/configureapp.cpp
203+++ b/tools/configure/configureapp.cpp
204@@ -1186,6 +1186,13 @@ void Configure::parseCmdLine()
205 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
206 }
207
208+ else if (configCmdLine.at(i) == "-external-hostbindir") {
209+ ++i;
210+ if (i == argCount)
211+ break;
212+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
213+ }
214+
215 else if (configCmdLine.at(i) == "-make-tool") {
216 ++i;
217 if (i == argCount)
218@@ -3852,6 +3859,7 @@ void Configure::generateQConfigCpp()
219 << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
220 << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
221 << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
222+ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl
223 << " \"qt_targspec=" << targSpec << "\"," << endl
224 << " \"qt_hostspec=" << hostSpec << "\"," << endl
225 << "#endif" << endl
226--
2271.8.5.2
228
diff --git a/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch b/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch
new file mode 100644
index 00000000..71a45969
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch
@@ -0,0 +1,29 @@
1From 925a8c67fef4bfa56bdc3c1c7cd87e21defc3d94 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 27 Apr 2013 22:33:33 +0200
4Subject: [PATCH 04/14] configureapp: Prefix default LIBDIRS and INCDIRS with
5 SYSROOT
6
7Upstream-Status: Pending
8---
9 tools/configure/configureapp.cpp | 4 ++--
10 1 file changed, 2 insertions(+), 2 deletions(-)
11
12diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
13index ab475c3..68cd43d 100644
14--- a/tools/configure/configureapp.cpp
15+++ b/tools/configure/configureapp.cpp
16@@ -3213,8 +3213,8 @@ void Configure::generateQConfigPri()
17 configStream << " QT_ARCH = " << dictionary["QT_ARCH"] << endl;
18 if (dictionary.contains("XQMAKESPEC") && !dictionary["XQMAKESPEC"].startsWith("wince")) {
19 // FIXME: add detection
20- configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl;
21- configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl;
22+ configStream << " QMAKE_DEFAULT_LIBDIRS = $$[QT_SYSROOT]/lib $$[QT_SYSROOT]/usr/lib" << endl;
23+ configStream << " QMAKE_DEFAULT_INCDIRS = $$[QT_SYSROOT]/usr/include $$[QT_SYSROOT]/usr/local/include" << endl;
24 }
25 configStream << "}" << endl;
26 if (dictionary["QT_EDITION"].contains("OPENSOURCE"))
27--
281.8.5.2
29
diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
new file mode 100644
index 00000000..f85fb33b
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
@@ -0,0 +1,117 @@
1From 33bbb10c66df59abfad9f4576462f63dfb500149 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 05/14] qt_module: Fix pkgconfig replacement
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 enable path replacement in installed prl files on all platforms
37 Task-number: QTBUG-33794
38 Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
39 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
40
41Upstream-Status: Pending
42
43Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
44Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
45---
46 mkspecs/features/qt_module.prf | 43 ++++++++++++++++++++++++++++++------------
47 1 file changed, 31 insertions(+), 12 deletions(-)
48
49diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
50index 11509ee..2f95684 100644
51--- a/mkspecs/features/qt_module.prf
52+++ b/mkspecs/features/qt_module.prf
53@@ -135,30 +135,49 @@ load(qt_installs)
54 rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
55 else: \
56 rplbase = $$MODULE_BASE_OUTDIR
57-include_replace.match = $$rplbase/include
58-include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
59-include_replace.CONFIG = path
60-lib_replace.match = $$rplbase/lib
61-host_build: \
62- lib_replace.replace = $$[QT_HOST_LIBS]
63-else: \
64+pkgconfig_include_replace.match = $$rplbase/include
65+pkgconfig_include_replace.replace = "\$$\\{includedir}"
66+pkgconfig_lib_replace.match = $$rplbase/lib
67+pkgconfig_lib_replace.replace = "\$$\\{libdir}"
68+!exists($$[QT_SYSROOT]) {
69+ include_replace.match = $$rplbase/include
70+ include_replace.replace = $$[QT_INSTALL_HEADERS/raw]
71+ include_replace.CONFIG = path
72+ lib_replace.match = $$rplbase/lib
73 lib_replace.replace = $$[QT_INSTALL_LIBS/raw]
74-lib_replace.CONFIG = path
75+ lib_replace.CONFIG = path
76+ lafile_replace.match = $$rplbase
77+ lafile_replace.replace = "$$[QT_INSTALL_PREFIX/raw]"
78+} else {
79+ # include_replace and lib_replace are duplicate, but we don't want to
80+ # make QMAKE_PKGCONFIG_INSTALL_REPLACE, QMAKE_PRL_INSTALL_REPLACE conditional
81+ include_replace.match = $$rplbase
82+ include_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
83+ include_replace.CONFIG = path
84+ lib_replace.match = $$rplbase
85+ lib_replace.replace = $$[QT_SYSROOT]$$[QT_INSTALL_PREFIX/raw]
86+ lib_replace.CONFIG = path
87+ lafile_replace.match = $$rplbase
88+ lafile_replace.replace = "=$$[QT_INSTALL_PREFIX/raw]"
89+}
90 QMAKE_PRL_INSTALL_REPLACE += include_replace lib_replace
91
92 unix|win32-g++* {
93 CONFIG += create_pc
94- QMAKE_PKGCONFIG_LIBDIR = $$lib_replace.replace
95- QMAKE_PKGCONFIG_INCDIR = $$include_replace.replace
96+ host_build: \
97+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
98+ else: \
99+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
100+ QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
101 QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
102 QMAKE_PKGCONFIG_DESTDIR = pkgconfig
103- QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace
104+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_include_replace pkgconfig_lib_replace
105 }
106
107 unix {
108 CONFIG += create_libtool explicitlib
109 QMAKE_LIBTOOL_LIBDIR = $$lib_replace.replace
110- QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace
111+ QMAKE_LIBTOOL_INSTALL_REPLACE += include_replace lib_replace lafile_replace
112 }
113
114 unix|win32-g++* {
115--
1161.8.5.2
117
diff --git a/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch b/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch
new file mode 100644
index 00000000..82e028d7
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch
@@ -0,0 +1,43 @@
1From ce1afee66a6310f362644e71d17f8d1eb3f848da Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Wed, 8 May 2013 23:54:35 +0200
4Subject: [PATCH 06/14] configure: don't export SYSTEM_VARIABLES to .qmake.vars
5
6* linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
7 causing issues as we need g++ to be used as linker
8
9Upstream-Status: Pending
10
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 configure | 14 --------------
14 1 file changed, 14 deletions(-)
15
16diff --git a/configure b/configure
17index 46f7230..96c56c8 100755
18--- a/configure
19+++ b/configure
20@@ -581,20 +581,6 @@ fi'`
21 done
22
23 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
24-for varname in $SYSTEM_VARIABLES; do
25- qmakevarname="${varname}"
26- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
27- if [ "${varname}" = "LDFLAGS" ]; then
28- qmakevarname="LFLAGS"
29- elif [ "${varname}" = "LD" ]; then
30- qmakevarname="LINK"
31- fi
32- cmd=`echo \
33-'if [ -n "\$'${varname}'" ]; then
34- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
35-fi'`
36- eval "$cmd"
37-done
38 # Use CC/CXX to run config.tests
39 mkdir -p "$outpath/config.tests"
40 rm -f "$outpath/config.tests/.qmake.cache"
41--
421.8.5.2
43
diff --git a/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch b/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch
new file mode 100644
index 00000000..b2b5ef9c
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch
@@ -0,0 +1,37 @@
1From 7846422a1d4ca37583fbbd10d768e34ddf84d233 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Thu, 9 May 2013 10:06:50 +0200
4Subject: [PATCH 07/14] configure.prf: Allow to add extra arguments to make
5
6* sometimes we would like to add -e or define some variable and respect it from both
7 Makefiles used in configure tests and also Makefiles to build the application
8
9Upstream-Status: Pending
10
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 mkspecs/features/configure.prf | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
17index 39144e7..de48b07 100644
18--- a/mkspecs/features/configure.prf
19+++ b/mkspecs/features/configure.prf
20@@ -54,12 +54,12 @@ defineTest(qtCompileTest) {
21 qmake_configs = "\"CONFIG -= qt debug_and_release app_bundle lib_bundle\""
22
23 # Clean up after previous run
24- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
25+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
26
27 mkpath($$test_out_dir)|error("Aborting.")
28
29 qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qmake_configs $$shell_quote($$test_dir)") {
30- qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") {
31+ qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
32 log("yes$$escape_expand(\\n)")
33 msg = "test $$1 succeeded"
34 write_file($$QMAKE_CONFIG_LOG, msg, append)
35--
361.8.5.2
37
diff --git a/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch b/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch
new file mode 100644
index 00000000..eea0c343
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch
@@ -0,0 +1,49 @@
1From 9bb1bbebd644c243413650defa08a99eb4678a87 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Tue, 28 Feb 2012 15:10:24 +0000
4Subject: [PATCH 08/14] configure: make pulseaudio, alsa, freetype a
5 configurable option
6
7Upstream-Status: Pending
8
9Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 configure | 21 +++++++++++++++++++++
13 1 file changed, 21 insertions(+)
14
15diff --git a/configure b/configure
16index 96c56c8..b3854aa 100755
17--- a/configure
18+++ b/configure
19@@ -1801,6 +1801,27 @@ while [ "$#" -gt 0 ]; do
20 UNKNOWN_OPT=yes
21 fi
22 ;;
23+ pulseaudio)
24+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
25+ CFG_PULSEAUDIO="$VAL"
26+ else
27+ UNKNOWN_OPT=yes
28+ fi
29+ ;;
30+ alsa)
31+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
32+ CFG_ALSA="$VAL"
33+ else
34+ UNKNOWN_OPT=yes
35+ fi
36+ ;;
37+ freetype)
38+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
39+ CFG_LIBFREETYPE="$VAL"
40+ else
41+ UNKNOWN_OPT=yes
42+ fi
43+ ;;
44 gtkstyle)
45 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
46 CFG_QGTKSTYLE="$VAL"
47--
481.8.5.2
49
diff --git a/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch b/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch
new file mode 100644
index 00000000..b35597b7
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch
@@ -0,0 +1,85 @@
1From b70eabc4050a5e7621511403dcbf7a650b3ef9fc Mon Sep 17 00:00:00 2001
2From: Simon Busch <morphis@gravedo.de>
3Date: Mon, 22 Jul 2013 21:09:41 +0000
4Subject: [PATCH 09/14] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to
5 determine path to host binaries
6
7Upstream-Status: Inappropiate (configuration)
8
9Signed-off-by: Simon Busch <morphis@gravedo.de>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
13 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
14 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
15 3 files changed, 6 insertions(+), 6 deletions(-)
16
17diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
18index 1e00c74..a99b5bf 100644
19--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
20+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
21@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
22 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
23 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
24 !!ELSE
25- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
26+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
27 !!ENDIF
28 _qt5_Core_check_file_exists(${imported_location})
29
30@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
31 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
32 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
33 !!ELSE
34- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
35+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
36 !!ENDIF
37 _qt5_Core_check_file_exists(${imported_location})
38
39@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
40 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
41 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
42 !!ELSE
43- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
44+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
45 !!ENDIF
46 _qt5_Core_check_file_exists(${imported_location})
47
48diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
49index 1d94715..301af8f 100644
50--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
51+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
52@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
53 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
54 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
55 !!ELSE
56- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
57+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
58 !!ENDIF
59 _qt5_DBus_check_file_exists(${imported_location})
60
61@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
62 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
63 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
64 !!ELSE
65- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
66+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
67 !!ENDIF
68 _qt5_DBus_check_file_exists(${imported_location})
69
70diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
71index e5650ff..16ff007 100644
72--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
73+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
74@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
75 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
76 set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
77 !!ELSE
78- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
79+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
80 !!ENDIF
81 _qt5_Widgets_check_file_exists(${imported_location})
82
83--
841.8.5.2
85
diff --git a/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch
new file mode 100644
index 00000000..91370f17
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0010-Always-build-uic.patch
@@ -0,0 +1,38 @@
1From 1ea3afc37eba9ea4b1bee3916abd1bcf6abf97ba 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 10/12] 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 | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/src/src.pro b/src/src.pro
17index b7887a6..8801544 100644
18--- a/src/src.pro
19+++ b/src/src.pro
20@@ -145,7 +145,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@@ -156,4 +156,4 @@ TR_EXCLUDE = \
30 src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml
31
32 sub-tools.depends = $$TOOLS
33-QMAKE_EXTRA_TARGETS = sub-tools
34\ No newline at end of file
35+QMAKE_EXTRA_TARGETS = sub-tools
36--
371.8.5.2
38
diff --git a/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch b/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch
new file mode 100644
index 00000000..1b1d85e3
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch
@@ -0,0 +1,30 @@
1From 96a18197ac6d9960fd00654acffd6a81bafa0320 Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Mon, 29 Oct 2012 20:07:49 -0700
4Subject: [PATCH 10/14] qmake is already built in qtbase-native
5
6Ported from OE by: Yu Ke <ke.yu@intel.com>
7Upstream-Status: Inappropriate [configuration]
8
9Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 configure | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/configure b/configure
16index b3854aa..15c89c7 100755
17--- a/configure
18+++ b/configure
19@@ -3923,7 +3923,7 @@ setBootstrapEvalVariable()
20
21
22 # build qmake
23-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
24+if false; then ###[ '!' -f "$outpath/bin/qmake" ];
25 echo "Creating qmake..."
26
27 mkdir -p "$outpath/qmake" || exit
28--
291.8.5.2
30
diff --git a/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch b/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch
new file mode 100644
index 00000000..65b65aa7
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch
@@ -0,0 +1,30 @@
1From 69c6d0ccc6097da0479fddc905dd8aa69cb1d0e2 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Mon, 29 Oct 2012 20:26:36 -0700
4Subject: [PATCH 11/14] Allow building a separate qmake for the target
5
6Upstream-Status: Inappropriate [config]
7
8Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
9Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 qmake/qmake.pro | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/qmake/qmake.pro b/qmake/qmake.pro
16index 89d6ea5..7c605b9 100644
17--- a/qmake/qmake.pro
18+++ b/qmake/qmake.pro
19@@ -8,6 +8,8 @@ CONFIG -= qt
20 DEFINES += \
21 QT_BUILD_QMAKE \
22 PROEVALUATOR_FULL
23+DESTDIR = ../bin/
24+TARGET = qmake
25
26 VPATH += \
27 ../src/corelib/global \
28--
291.8.5.2
30
diff --git a/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch b/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch
new file mode 100644
index 00000000..9335610d
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0011-configure-preserve-built-qmake-and-swap-with-native-.patch
@@ -0,0 +1,30 @@
1From 6f42a9e1422f3aba3e2bddb8ef6d470841224ab1 Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:22:34 -0500
4Subject: [PATCH 11/12] 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 b3854aa..20836a6 100755
17--- a/configure
18+++ b/configure
19@@ -4067,6 +4067,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--
291.8.5.2
30
diff --git a/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch b/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch
new file mode 100644
index 00000000..d235797d
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0012-configure-bump-path-length-from-256-to-512-character.patch
@@ -0,0 +1,29 @@
1From f9db024119ab11177629311101313cfee0fbcbc8 Mon Sep 17 00:00:00 2001
2From: Denys Dmytriyenko <denys@ti.com>
3Date: Mon, 11 Nov 2013 20:27:30 -0500
4Subject: [PATCH 12/12] 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 20836a6..50661f4 100755
16--- a/configure
17+++ b/configure
18@@ -3805,7 +3805,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--
281.8.5.2
29
diff --git a/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch b/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch
new file mode 100644
index 00000000..591be8e5
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch
@@ -0,0 +1,48 @@
1From 962bbe70b1f87afa820bd4cee49fcccfb6190341 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
3Date: Sat, 25 May 2013 17:34:32 +0200
4Subject: [PATCH 12/14] qtbase: allow build of examples
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9this revert the following commit :
10
11commit 2b397f985e4ef6ae5c0571a928bb1320fb048c61
12Author: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
13Date: Fri Dec 21 19:36:12 2012 +0100
14
15 do not actually build examples in production builds
16
17 -developer-build enables an actual build of examples, based on the
18 assumption that developers want to test it (it can be still disabled
19 with -nomake examples). regular users otoh want only the examples
20 sources installed.
21
22 Change-Id: Ifc6a108099929175a3960480802b271a758fdd38
23 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
24
25Signed-off-by: Eric Bénard <eric@eukrea.com>
26---
27 mkspecs/features/qt_example_installs.prf | 7 -------
28 1 file changed, 7 deletions(-)
29
30diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
31index 2db752c..ca1b0c7 100644
32--- a/mkspecs/features/qt_example_installs.prf
33+++ b/mkspecs/features/qt_example_installs.prf
34@@ -92,11 +92,4 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
35 allfiles -= doc
36 !isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
37 }
38-
39- !equals(TEMPLATE, subdirs):!compile_examples {
40- TEMPLATE = aux
41- CONFIG -= have_target qt staticlib dll
42- SOURCES =
43- INSTALLS -= target
44- }
45 }
46--
471.8.5.2
48
diff --git a/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch
new file mode 100644
index 00000000..9bef55af
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch
@@ -0,0 +1,154 @@
1From 4a169ec0dffdb2dc501533a4bca3648ba3a220bf 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 13/14] 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 | 12 ++++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintengine.cpp | 10 +++++++---
18 src/gui/opengl/qopenglpaintengine_p.h | 1 +
19 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
20 5 files changed, 23 insertions(+), 4 deletions(-)
21
22diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
23index fa392d1..5df1762 100644
24--- a/src/gui/opengl/qopenglpaintdevice.cpp
25+++ b/src/gui/opengl/qopenglpaintdevice.cpp
26@@ -111,6 +111,7 @@ class QOpenGLPaintDevicePrivate
27 public:
28 QOpenGLPaintDevicePrivate(const QSize &size);
29
30+ QPoint offset;
31 QSize size;
32 QOpenGLContext *ctx;
33
34@@ -159,6 +160,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
35 {
36 }
37
38+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
39+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
40+{
41+ d_ptr->offset = QPoint(x,y);
42+}
43+
44 /*!
45 Destroys the QOpenGLPaintDevice.
46 */
47@@ -228,6 +235,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
48 return d_ptr->ctx;
49 }
50
51+QPoint QOpenGLPaintDevice::offset() const
52+{
53+ return d_ptr->offset;
54+}
55+
56 /*!
57 Returns the pixel size of the paint device.
58
59diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
60index c05571c..01eb1bc 100644
61--- a/src/gui/opengl/qopenglpaintdevice.h
62+++ b/src/gui/opengl/qopenglpaintdevice.h
63@@ -62,12 +62,14 @@ public:
64 QOpenGLPaintDevice();
65 explicit QOpenGLPaintDevice(const QSize &size);
66 QOpenGLPaintDevice(int width, int height);
67+ QOpenGLPaintDevice(int x, int y, int width, int height);
68 virtual ~QOpenGLPaintDevice();
69
70 int devType() const { return QInternal::OpenGL; }
71 QPaintEngine *paintEngine() const;
72
73 QOpenGLContext *context() const;
74+ QPoint offset() const;
75 QSize size() const;
76 void setSize(const QSize &size);
77 void setDevicePixelRatio(qreal devicePixelRatio);
78diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
79index 0513551..f6aeb15 100644
80--- a/src/gui/opengl/qopenglpaintengine.cpp
81+++ b/src/gui/opengl/qopenglpaintengine.cpp
82@@ -1985,7 +1985,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
83 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
84 d->vertexAttributeArraysEnabledState[i] = false;
85
86+ const QPoint offset = d->device->offset();
87 const QSize sz = d->device->size();
88+ d->x = offset.x();
89+ d->y = offset.y();
90 d->width = sz.width();
91 d->height = sz.height();
92 d->mode = BrushDrawingMode;
93@@ -2073,7 +2076,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
94 d->device->ensureActiveTarget();
95
96 d->transferMode(BrushDrawingMode);
97- glViewport(0, 0, d->width, d->height);
98+ glViewport(d->x, d->y, d->width, d->height);
99 d->needsSync = false;
100 d->lastMaskTextureUsed = 0;
101 d->shaderManager->setDirty();
102@@ -2116,6 +2119,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
103 if (bounds == QRect(0, 0, width, height)) {
104 glDisable(GL_SCISSOR_TEST);
105 } else {
106+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
107 glEnable(GL_SCISSOR_TEST);
108 setScissor(bounds);
109 }
110@@ -2124,14 +2128,14 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
111
112 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
113 {
114- const int left = rect.left();
115+ const int left = rect.left() + x;
116 const int width = rect.width();
117 int bottom = height - (rect.top() + rect.height());
118 if (device->paintFlipped()) {
119 bottom = rect.top();
120 }
121+ bottom += y;
122 const int height = rect.height();
123-
124 glScissor(left, bottom, width, height);
125 }
126
127diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
128index d51f0e5..0d4b38d 100644
129--- a/src/gui/opengl/qopenglpaintengine_p.h
130+++ b/src/gui/opengl/qopenglpaintengine_p.h
131@@ -264,6 +264,7 @@ public:
132 QOpenGL2PaintEngineEx* q;
133 QOpenGLEngineShaderManager* shaderManager;
134 QOpenGLPaintDevice* device;
135+ int x, y;
136 int width, height;
137 QOpenGLContext *ctx;
138 EngineMode mode;
139diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
140index 3b62d1d..a5d1f7e 100644
141--- a/src/gui/opengl/qopengltextureglyphcache.cpp
142+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
143@@ -273,7 +273,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
144 funcs.glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
145
146 if (pex != 0) {
147- glViewport(0, 0, pex->width, pex->height);
148+ glViewport(pex->x, pex->y, pex->width, pex->height);
149 pex->updateClipScissorTest();
150 } else {
151 m_blitProgram->disableAttributeArray(int(QT_VERTEX_COORDS_ATTR));
152--
1531.8.5.2
154
diff --git a/recipes-qt/qt5/qtbase/0014-enables-tslib-device-to-be-read-from-env-variable.patch b/recipes-qt/qt5/qtbase/0014-enables-tslib-device-to-be-read-from-env-variable.patch
new file mode 100644
index 00000000..5b5d18f0
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0014-enables-tslib-device-to-be-read-from-env-variable.patch
@@ -0,0 +1,35 @@
1From 2af1da07715288bf7fc7308e2d11aef3171c9590 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
3Date: Mon, 27 May 2013 18:32:37 +0200
4Subject: [PATCH 14/14] enables tslib device to be read from env variable
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9from :
10https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/tslib.patch
11
12Signed-off-by: Eric Bénard <eric@eukrea.com>
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/plugins/generic/tslib/qtslib.cpp | 4 +++-
16 1 file changed, 3 insertions(+), 1 deletion(-)
17
18diff --git a/src/plugins/generic/tslib/qtslib.cpp b/src/plugins/generic/tslib/qtslib.cpp
19index 6986fd5..2ed4a69 100644
20--- a/src/plugins/generic/tslib/qtslib.cpp
21+++ b/src/plugins/generic/tslib/qtslib.cpp
22@@ -64,7 +64,9 @@ QTsLibMouseHandler::QTsLibMouseHandler(const QString &key,
23 qDebug() << "QTsLibMouseHandler" << key << specification;
24 setObjectName(QLatin1String("TSLib Mouse Handler"));
25
26- QByteArray device = "/dev/input/event1";
27+ QByteArray device = qgetenv("TSLIB_TSDEVICE");
28+ if(device.isEmpty())
29+ device = "/dev/input/event1";
30 if (specification.startsWith("/dev/"))
31 device = specification.toLocal8Bit();
32
33--
341.8.5.2
35