diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2015-05-28 14:52:48 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2015-05-28 14:52:48 +0200 |
commit | 3208763b8b3f65b17825ded4b2c9b9166d78f2b2 (patch) | |
tree | 9b4d2c0f4bf069f1f23c37e66be00041c192b271 /recipes-qt/qt5/qtbase | |
parent | 3fa7bb148ed40bd018ce51b5f20c0c8792638568 (diff) | |
download | meta-qt5-3208763b8b3f65b17825ded4b2c9b9166d78f2b2.tar.gz |
qt5: rename <module>-git directories with patches to just <module>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtbase')
16 files changed, 1474 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..f34aed42 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch | |||
@@ -0,0 +1,351 @@ | |||
1 | From 08f6be97c3f088fd8a2d752441c638093eedd990 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Mon, 15 Apr 2013 04:29:32 +0200 | ||
4 | Subject: [PATCH 01/12] 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 | |||
40 | Upstream-Status: Inappropriate [embedded specific] | ||
41 | too OE specific, probably cannot be upstreamed | ||
42 | |||
43 | Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c | ||
44 | Signed-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 | |||
54 | diff --git a/configure b/configure | ||
55 | index 6ce6753..0a00d6d 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 | @@ -3178,7 +3196,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 | @@ -3216,7 +3234,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 | @@ -3687,6 +3705,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 | @@ -3725,14 +3751,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 | ||
178 | diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf | ||
179 | index 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) | ||
197 | diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf | ||
198 | new file mode 100644 | ||
199 | index 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) | ||
243 | diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h | ||
244 | new file mode 100644 | ||
245 | index 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 | -- | ||
350 | 2.3.5 | ||
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 new file mode 100644 index 00000000..ec2bcb49 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | From 31fa051d53e26301ef6abf72bd3f992d7c16cad2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Holger Freyther <zecke@selfish.org> | ||
3 | Date: Wed, 26 Sep 2012 17:22:30 +0200 | ||
4 | Subject: [PATCH 02/12] qlibraryinfo: allow to set qt.conf from the outside | ||
5 | using the environment | ||
6 | |||
7 | Allow to set a qt.conf from the outside using the environment. This allows | ||
8 | to inject new prefixes and other paths into qmake. This is needed when using | ||
9 | the same qmake binary to build qt/x11 and qt/embedded | ||
10 | |||
11 | Upstream-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 | |||
16 | Signed-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 | |||
21 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
22 | index d66007b..91ca643 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 | -- | ||
38 | 2.3.5 | ||
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 new file mode 100644 index 00000000..779ea918 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch | |||
@@ -0,0 +1,233 @@ | |||
1 | From cf4e996876e0b467b7aae124c7cb285f677bf6b0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [PATCH 03/12] 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 | |||
18 | Upstream-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 | |||
23 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
24 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
25 | Signed-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 | |||
36 | diff --git a/configure b/configure | ||
37 | index 0a00d6d..ad5f4cd 100755 | ||
38 | --- a/configure | ||
39 | +++ b/configure | ||
40 | @@ -770,6 +770,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 | @@ -889,6 +890,7 @@ while [ "$#" -gt 0 ]; do | ||
49 | -testsdir| \ | ||
50 | -hostdatadir| \ | ||
51 | -hostbindir| \ | ||
52 | + -external-hostbindir| \ | ||
53 | -hostlibdir| \ | ||
54 | -extprefix| \ | ||
55 | -sysroot| \ | ||
56 | @@ -1107,6 +1109,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 | @@ -2270,6 +2275,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 | @@ -2949,6 +2958,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 | @@ -3649,6 +3663,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 | ||
97 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
98 | index 79b4eab..8c6913e 100644 | ||
99 | --- a/mkspecs/features/qt_functions.prf | ||
100 | +++ b/mkspecs/features/qt_functions.prf | ||
101 | @@ -198,7 +198,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) { | ||
114 | diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf | ||
115 | index 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) | ||
132 | diff --git a/qtbase.pro b/qtbase.pro | ||
133 | index 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 | ||
165 | diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in | ||
166 | index 7213a84..a977417 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 | |||
196 | diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in | ||
197 | index 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 | |||
218 | diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in | ||
219 | index 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 | -- | ||
232 | 2.3.5 | ||
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 new file mode 100644 index 00000000..c586775f --- /dev/null +++ b/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch | |||
@@ -0,0 +1,114 @@ | |||
1 | From bf9f8df42f5a7ac4a0cb4bdad8c849228aa79b35 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 27 Apr 2013 23:15:37 +0200 | ||
4 | Subject: [PATCH 04/12] qt_module: Fix pkgconfig and libtool replacements | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-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 | |||
61 | Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c | ||
62 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
63 | Signed-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 | |||
69 | diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf | ||
70 | index 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 | ||
82 | diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf | ||
83 | index 2437efe..2e1f014 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 | -- | ||
113 | 2.3.5 | ||
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 new file mode 100644 index 00000000..9723beac --- /dev/null +++ b/recipes-qt/qt5/qtbase/0005-Revert-eglfs-Print-the-chosen-config-in-debug-mode.patch | |||
@@ -0,0 +1,97 @@ | |||
1 | From f8a4e063b45b5b941738dd90ea7c74063bc1e49f Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Mon, 21 Apr 2014 19:22:04 +0200 | ||
4 | Subject: [PATCH 05/12] Revert "eglfs: Print the chosen config in debug mode" | ||
5 | |||
6 | With 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 | |||
41 | This reverts commit dc685cf6331f5fb46285cf10d6464c2ecf41f73e. | ||
42 | |||
43 | Will be partially resolved in newer revision with: | ||
44 | https://codereview.qt-project.org/96220 | ||
45 | |||
46 | Change-Id: I7a6a926b7525d4f137824c71f2ec8cd089c21f13 | ||
47 | Signed-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 | |||
53 | diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp | ||
54 | index 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 | ||
70 | diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp | ||
71 | index 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 | -- | ||
96 | 2.3.5 | ||
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 new file mode 100644 index 00000000..04fb3709 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0006-qeglplatformintegration-Undefine-CursorShape-from-X..patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 6061c8457ea1f76745bd9918e61bda01ef96ce56 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Wed, 19 Mar 2014 18:32:28 +0100 | ||
4 | Subject: [PATCH 06/12] qeglplatformintegration: Undefine CursorShape from X.h | ||
5 | |||
6 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
7 | --- | ||
8 | src/platformsupport/eglconvenience/qeglplatformintegration_p.h | 6 ++++++ | ||
9 | 1 file changed, 6 insertions(+) | ||
10 | |||
11 | diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
12 | index 2b5d5f5..a0aab03 100644 | ||
13 | --- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
14 | +++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h | ||
15 | @@ -50,6 +50,12 @@ | ||
16 | #include <qpa/qplatformnativeinterface.h> | ||
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 | -- | ||
29 | 2.3.5 | ||
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 new file mode 100644 index 00000000..be75d72c --- /dev/null +++ b/recipes-qt/qt5/qtbase/0007-configure-bump-path-length-from-256-to-512-character.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | From a6b01490248be28c1db3abd5f710c5d7d9afee55 Mon Sep 17 00:00:00 2001 | ||
2 | From: Denys Dmytriyenko <denys@ti.com> | ||
3 | Date: Mon, 11 Nov 2013 20:27:30 -0500 | ||
4 | Subject: [PATCH 07/12] configure: bump path length from 256 to 512 characters | ||
5 | |||
6 | Increase the path length that gets hardcoded into generated config.cpp file | ||
7 | from 256 to 512 characters, as nativesdk path can be quite long. | ||
8 | |||
9 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
10 | --- | ||
11 | configure | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/configure b/configure | ||
15 | index ad5f4cd..c19ff6a 100755 | ||
16 | --- a/configure | ||
17 | +++ b/configure | ||
18 | @@ -3627,7 +3627,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 | -- | ||
28 | 2.3.5 | ||
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 new file mode 100644 index 00000000..e4d4327c --- /dev/null +++ b/recipes-qt/qt5/qtbase/0008-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From d1712999887b9809cce57b1e6c008c454330cd2e Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Wed, 5 Feb 2014 18:35:08 +0100 | ||
4 | Subject: [PATCH 08/12] eglfs: fix egl error for platforms only supporting one | ||
5 | window/surface | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | running qmlscene -platform eglfs <filename>.qml | ||
11 | |||
12 | caused | ||
13 | |||
14 | EGL Error : Could not create the egl surface: error = 0x3003 | ||
15 | |||
16 | Rebased version of [1-2] | ||
17 | |||
18 | Upstream-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 | |||
23 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
24 | Signed-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 | |||
29 | diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
30 | index 39a3ef9..2c05979 100644 | ||
31 | --- a/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
32 | +++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp | ||
33 | @@ -68,6 +68,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 | @@ -81,7 +90,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 | @@ -101,6 +110,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 | -- | ||
71 | 2.3.5 | ||
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 new file mode 100644 index 00000000..bebb3d95 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0009-QOpenGLPaintDevice-sub-area-support.patch | |||
@@ -0,0 +1,157 @@ | |||
1 | From a34538ff13c520fa85df689255469a316f037d0d Mon Sep 17 00:00:00 2001 | ||
2 | From: Jani Hautakangas <jani.hautakangas@ixonos.com> | ||
3 | Date: Thu, 16 May 2013 09:52:07 +0300 | ||
4 | Subject: [PATCH 09/12] QOpenGLPaintDevice sub-area support | ||
5 | |||
6 | Allows creating QOpenGLPaintDevice targetting sub-area | ||
7 | of binded framebuffer. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80 | ||
12 | |||
13 | Signed-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 | |||
23 | diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp | ||
24 | index 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 | |||
52 | diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h | ||
53 | index 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); | ||
71 | diff --git a/src/gui/opengl/qopenglpaintdevice_p.h b/src/gui/opengl/qopenglpaintdevice_p.h | ||
72 | index 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; | ||
83 | diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp | ||
84 | index 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); | ||
130 | diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h | ||
131 | index 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; | ||
142 | diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp | ||
143 | index 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 | -- | ||
156 | 2.3.5 | ||
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 new file mode 100644 index 00000000..f2eed114 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0010-Make-Qt5GuiConfigExtras.cmake-find-gl-es-include-dir.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From 16a55457ce31d467cb331ab8e94b672757ef42b9 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Thu, 18 Dec 2014 13:41:09 +0100 | ||
4 | Subject: [PATCH 10/12] Make Qt5GuiConfigExtras.cmake find gl(es) include dir | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | In configure QMAKE_INCDIR_OPENGL is set with pkg-config. Without | ||
10 | PKG_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 | ||
12 | gl(es) include directories cannot be found. Cmake builds depending on | ||
13 | Qt5Gui error out with | ||
14 | |||
15 | | Failed to find "GLES2/gl2.h" in "/usr/include/libdrm" | ||
16 | |||
17 | Upstream-Status: submitted [1] | ||
18 | |||
19 | [1] https://bugreports.qt-project.org/browse/QTBUG-43445 | ||
20 | |||
21 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
22 | --- | ||
23 | src/gui/Qt5GuiConfigExtras.cmake.in | 3 --- | ||
24 | 1 file changed, 3 deletions(-) | ||
25 | |||
26 | diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in | ||
27 | index 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 | -- | ||
41 | 2.3.5 | ||
42 | |||
diff --git a/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch b/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch new file mode 100644 index 00000000..da17878e --- /dev/null +++ b/recipes-qt/qt5/qtbase/0011-Always-build-uic.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 5a6ad20dd4fde6a0581be895d763aae43f1fc2b6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 16 Nov 2013 00:32:30 +0100 | ||
4 | Subject: [PATCH 11/13] Always build uic | ||
5 | |||
6 | Even if we are not building gui or widgets. This tool is needed later | ||
7 | as a native tool when compiling the target. | ||
8 | |||
9 | Change-Id: I257668ac28c22b192e7ec7736e6c23fa3be6bab6 | ||
10 | Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com> | ||
11 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
12 | --- | ||
13 | src/src.pro | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/src/src.pro b/src/src.pro | ||
17 | index 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 | -- | ||
30 | 2.3.5 | ||
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 new file mode 100644 index 00000000..96198b1f --- /dev/null +++ b/recipes-qt/qt5/qtbase/0011-qmake-don-t-build-it-in-configure-but-allow-to-build.patch | |||
@@ -0,0 +1,68 @@ | |||
1 | From 6c0cc990522454e0c9e52ba969c3a8c5937157b8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Krelin <hacker@klever.net> | ||
3 | Date: Mon, 29 Oct 2012 20:07:49 -0700 | ||
4 | Subject: [PATCH 11/12] 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 | |||
10 | Upstream-Status: Inappropriate [configuration] | ||
11 | OE specific for native/target builds | ||
12 | |||
13 | Signed-off-by: Yu Ke <ke.yu@intel.com> | ||
14 | Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> | ||
15 | Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com> | ||
16 | Signed-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 | |||
27 | diff --git a/configure b/configure | ||
28 | index c19ff6a..7a34b11 100755 | ||
29 | --- a/configure | ||
30 | +++ b/configure | ||
31 | @@ -3729,7 +3729,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 | ||
40 | diff --git a/qmake/qmake.pri b/qmake/qmake.pri | ||
41 | index 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 \ | ||
54 | diff --git a/qmake/qmake.pro b/qmake/qmake.pro | ||
55 | index 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 | -- | ||
67 | 2.3.5 | ||
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 new file mode 100644 index 00000000..4c044c0d --- /dev/null +++ b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | From 6425d71d52c5587f323fe28af62530d5c82b02fd Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [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 | |||
18 | Upstream-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 | |||
23 | Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37 | ||
24 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
25 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
26 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
27 | Signed-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 | |||
35 | diff --git a/qmake/property.cpp b/qmake/property.cpp | ||
36 | index 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 | }; | ||
47 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
48 | index 91ca643..7a567fa 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 | ||
68 | diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h | ||
69 | index 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, | ||
80 | diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp | ||
81 | index 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 | -- | ||
107 | 2.3.5 | ||
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 new file mode 100644 index 00000000..0a7eb15e --- /dev/null +++ b/recipes-qt/qt5/qtbase/0012-Set-paths-for-target-properly.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From 84c23fc01b28087de35604ef971227b57fb77876 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | ||
3 | Date: Thu, 22 Jan 2015 16:09:35 +0100 | ||
4 | Subject: [PATCH 12/12] Set paths for target properly | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Upstream-Status: Inappropriate [OE specific] | ||
10 | |||
11 | Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> | ||
12 | --- | ||
13 | configure | 43 +++++++++++++++++++++---------------------- | ||
14 | 1 file changed, 21 insertions(+), 22 deletions(-) | ||
15 | |||
16 | diff --git a/configure b/configure | ||
17 | index 7a34b11..7bb4476 100755 | ||
18 | --- a/configure | ||
19 | +++ b/configure | ||
20 | @@ -3644,28 +3644,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 | -- | ||
71 | 2.3.5 | ||
72 | |||
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 new file mode 100644 index 00000000..0b271a35 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0013-configure-preserve-built-qmake-and-swap-with-native-.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 6b980c8132800001b2f0c5c0e76f7cc7c60d14ee Mon Sep 17 00:00:00 2001 | ||
2 | From: Denys Dmytriyenko <denys@ti.com> | ||
3 | Date: Mon, 11 Nov 2013 20:22:34 -0500 | ||
4 | Subject: [PATCH 13/13] configure: preserve built qmake and swap with native | ||
5 | one | ||
6 | |||
7 | Let configure script build the real qmake, but right after it's built, swap | ||
8 | it with a native qmake for further internal use, preserving the real one. | ||
9 | |||
10 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
11 | --- | ||
12 | configure | 2 ++ | ||
13 | 1 file changed, 2 insertions(+) | ||
14 | |||
15 | diff --git a/configure b/configure | ||
16 | index c19ff6a..2d920e3 100755 | ||
17 | --- a/configure | ||
18 | +++ b/configure | ||
19 | @@ -3879,6 +3879,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 | -- | ||
29 | 2.3.5 | ||
30 | |||
diff --git a/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake b/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake new file mode 100644 index 00000000..6f0042b2 --- /dev/null +++ b/recipes-qt/qt5/qtbase/OEQt5Toolchain.cmake | |||
@@ -0,0 +1 @@ | |||
set( OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS} ) | |||