diff options
Diffstat (limited to 'recipes-qt/qt5/qtbase')
11 files changed, 101 insertions, 904 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 index b28ca8b6..df2016e1 100644 --- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch +++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From d6c75f788e15fb552eacb08359698a1342a97f20 Mon Sep 17 00:00:00 2001 | 1 | From 2784921c40d0b523c75e613e48b7fd1e90ba3ef1 Mon Sep 17 00:00:00 2001 |
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | 2 | From: Martin Jansa <Martin.Jansa@gmail.com> |
3 | Date: Mon, 15 Apr 2013 04:29:32 +0200 | 3 | Date: Mon, 15 Apr 2013 04:29:32 +0200 |
4 | Subject: [PATCH] Add linux-oe-g++ platform | 4 | Subject: [PATCH] Add linux-oe-g++ platform |
@@ -7,176 +7,53 @@ Subject: [PATCH] Add linux-oe-g++ platform | |||
7 | shell environment, because it's easier for qt recipes to export | 7 | shell environment, because it's easier for qt recipes to export |
8 | *FLAGS or CC specific for given recipe | 8 | *FLAGS or CC specific for given recipe |
9 | 9 | ||
10 | * configure: add getQEvalMakeConf and getXQEvalMakeConf | 10 | * configure: extend setBootstrapVariable to convert $$(...) operator |
11 | Allow expansion of $(...) references from qmake.conf to generate | 11 | to $(...) operator to work in qmake's Makefiles |
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 | 12 | ||
18 | * configure.prf: Allow to add extra arguments to make | 13 | * 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 | 14 | 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 | 15 | Makefiles used in configure tests and also Makefiles to build the application |
21 | 16 | ||
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 | * add -target suffix to qmake built in qtbase configure, this way we can | ||
41 | use qmake from qtbase-native, but then include qmake built for target | ||
42 | in qtbase-tools package (smilarly for nativesdk-qtbase). | ||
43 | |||
44 | Upstream-Status: Inappropriate [embedded specific] | 17 | Upstream-Status: Inappropriate [embedded specific] |
45 | too OE specific, probably cannot be upstreamed | 18 | too OE specific, probably cannot be upstreamed |
46 | 19 | ||
47 | Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c | 20 | Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c |
48 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | 21 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> |
49 | --- | 22 | --- |
50 | configure | 55 ++++++++++++------- | 23 | configure | 2 +- |
51 | mkspecs/features/configure.prf | 4 +- | 24 | mkspecs/features/configure.prf | 4 ++-- |
52 | mkspecs/linux-oe-g++/qmake.conf | 42 +++++++++++++++ | 25 | mkspecs/features/qt_functions.prf | 2 +- |
53 | mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ | 26 | mkspecs/linux-oe-g++/qmake.conf | 43 ++++++++++++++++++++++++++++++++++++ |
54 | 4 files changed, 181 insertions(+), 20 deletions(-) | 27 | mkspecs/linux-oe-g++/qplatformdefs.h | 1 + |
28 | 5 files changed, 48 insertions(+), 4 deletions(-) | ||
55 | create mode 100644 mkspecs/linux-oe-g++/qmake.conf | 29 | create mode 100644 mkspecs/linux-oe-g++/qmake.conf |
56 | create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h | 30 | create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h |
57 | 31 | ||
58 | diff --git a/configure b/configure | 32 | diff --git a/configure b/configure |
59 | index 0ba0c31..052872e 100755 | 33 | index 789ba4c..59cce01 100755 |
60 | --- a/configure | 34 | --- a/configure |
61 | +++ b/configure | 35 | +++ b/configure |
62 | @@ -333,6 +333,16 @@ getQMakeConf() | 36 | @@ -1624,7 +1624,7 @@ fi |
63 | getSingleQMakeVariable "$1" "$specvals" | 37 | # is where the resulting variable is written to |
64 | } | 38 | setBootstrapVariable() |
65 | |||
66 | +# OE qmake.conf is reading some variables from shell env | ||
67 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
68 | +getQEvalMakeConf() | ||
69 | +{ | ||
70 | + VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` | ||
71 | + EVAL=`eval "echo ${VAL}"` | ||
72 | +# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 | ||
73 | + eval "echo ${VAL}" | ||
74 | +} | ||
75 | + | ||
76 | getXQMakeConf() | ||
77 | { | 39 | { |
78 | if [ -z "$xspecvals" ]; then | 40 | - getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" |
79 | @@ -357,6 +367,16 @@ testXConfig() | 41 | + getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" |
80 | esac | ||
81 | } | ||
82 | |||
83 | +# OE qmake.conf is reading some variables from shell env | ||
84 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
85 | +getXQEvalMakeConf() | ||
86 | +{ | ||
87 | + VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'` | ||
88 | + EVAL=`eval "echo ${VAL}"` | ||
89 | +# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2 | ||
90 | + eval "echo ${VAL}" | ||
91 | +} | ||
92 | + | ||
93 | compilerSupportsFlag() | ||
94 | { | ||
95 | cat >conftest.cpp <<EOF | ||
96 | @@ -578,24 +598,14 @@ fi | ||
97 | # initalize variables | ||
98 | #------------------------------------------------------------------------------- | ||
99 | |||
100 | -SYSTEM_VARIABLES="AR RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS" | ||
101 | -for varname in $SYSTEM_VARIABLES; do | ||
102 | +# Export all OE variables for qmake.conf from shell env to QMakeVars | ||
103 | +OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP" | ||
104 | +for varname in $OE_VARIABLES; do | ||
105 | qmakevarname="${varname}" | ||
106 | - qmakecmdargs="" | ||
107 | - # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS | ||
108 | - if [ "${varname}" = "LDFLAGS" ]; then | ||
109 | - qmakevarname="LFLAGS" | ||
110 | - elif [ "${varname}" = "LD" ]; then | ||
111 | - qmakevarname="LINK" | ||
112 | - elif [ "${varname}" = "AR" ]; then | ||
113 | - # QMAKE_AR needs to be set to "/path/to/ar cqs" but the | ||
114 | - # environment variable will be set to the command only so we | ||
115 | - # need to append " cqs" for autoconf compatibility | ||
116 | - qmakecmdargs=" cqs" | ||
117 | - fi | ||
118 | cmd=`echo \ | ||
119 | -'if [ -n "\$'${varname}'" ]; then | ||
120 | - QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}${qmakecmdargs}'" | ||
121 | +'if [ -n "\$OE_QMAKE_'${varname}'" ]; then | ||
122 | + QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'" | ||
123 | +# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2 | ||
124 | fi'` | ||
125 | eval "$cmd" | ||
126 | done | ||
127 | @@ -3443,7 +3453,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then | ||
128 | [ "$CFG_GTK" = "auto" ] && CFG_GTK=no | ||
129 | fi | ||
130 | |||
131 | -QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX` | ||
132 | +QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX` | ||
133 | |||
134 | TEST_COMPILER=$QMAKE_CONF_COMPILER | ||
135 | |||
136 | @@ -3494,7 +3504,7 @@ if [ "$XPLATFORM_ANDROID" = "yes" ] ; then | ||
137 | fi | ||
138 | fi | ||
139 | |||
140 | -TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS` | ||
141 | +TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS` | ||
142 | |||
143 | GCC_MACHINE_DUMP= | ||
144 | case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac | ||
145 | @@ -3893,6 +3903,14 @@ setBootstrapVariable() | ||
146 | getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" | ||
147 | } | 42 | } |
148 | 43 | ||
149 | +# OE qmake.conf is reading some variables from shell env | ||
150 | +# read them from qmake.conf, replace qmake () syntax with shell and eval | ||
151 | +setBootstrapEvalVariable() | ||
152 | +{ | ||
153 | + getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile" | ||
154 | +} | ||
155 | + | ||
156 | + | ||
157 | # build qmake | 44 | # build qmake |
158 | if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
159 | echo "Creating qmake..." | ||
160 | @@ -3986,6 +4004,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; | ||
161 | EXEEXT= | ||
162 | ;; | ||
163 | esac | ||
164 | + [ "$QT_CROSS_COMPILE" = "yes" ] && EXEEXT=-target | ||
165 | if [ "$BUILD_ON_MAC" = "yes" ]; then | ||
166 | echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile" | ||
167 | echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile" | ||
168 | diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf | 45 | diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf |
169 | index a890c7f..151630c 100644 | 46 | index f275e3a..5aa15f5 100644 |
170 | --- a/mkspecs/features/configure.prf | 47 | --- a/mkspecs/features/configure.prf |
171 | +++ b/mkspecs/features/configure.prf | 48 | +++ b/mkspecs/features/configure.prf |
172 | @@ -71,14 +71,14 @@ defineTest(qtCompileTest) { | 49 | @@ -37,14 +37,14 @@ defineTest(qtCompileTest) { |
173 | } | 50 | } |
174 | 51 | ||
175 | # Clean up after previous run | 52 | # Clean up after previous run |
176 | - exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") | 53 | - exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean") |
177 | + exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") | 54 | + exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean") |
178 | 55 | ||
179 | mkpath($$test_out_dir)|error("Aborting.") | 56 | mkpath($$test_out_dir)|error() |
180 | 57 | ||
181 | !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF | 58 | !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF |
182 | 59 | ||
@@ -186,157 +63,72 @@ index a890c7f..151630c 100644 | |||
186 | log("yes$$escape_expand(\\n)") | 63 | log("yes$$escape_expand(\\n)") |
187 | msg = "test $$1 succeeded" | 64 | msg = "test $$1 succeeded" |
188 | write_file($$QMAKE_CONFIG_LOG, msg, append) | 65 | write_file($$QMAKE_CONFIG_LOG, msg, append) |
66 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
67 | index 708815d..097ac49 100644 | ||
68 | --- a/mkspecs/features/qt_functions.prf | ||
69 | +++ b/mkspecs/features/qt_functions.prf | ||
70 | @@ -67,7 +67,7 @@ defineTest(qtHaveModule) { | ||
71 | defineTest(qtPrepareTool) { | ||
72 | cmd = $$eval(QT_TOOL.$${2}.binary) | ||
73 | isEmpty(cmd) { | ||
74 | - cmd = $$[QT_HOST_BINS]/$$2 | ||
75 | + cmd = $$[QT_HOST_BINS/get]/$$2 | ||
76 | exists($${cmd}.pl) { | ||
77 | $${1}_EXE = $${cmd}.pl | ||
78 | cmd = perl -w $$system_path($${cmd}.pl) | ||
189 | diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf | 79 | diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf |
190 | new file mode 100644 | 80 | new file mode 100644 |
191 | index 0000000..311ba04 | 81 | index 0000000..c1837e6 |
192 | --- /dev/null | 82 | --- /dev/null |
193 | +++ b/mkspecs/linux-oe-g++/qmake.conf | 83 | +++ b/mkspecs/linux-oe-g++/qmake.conf |
194 | @@ -0,0 +1,42 @@ | 84 | @@ -0,0 +1,43 @@ |
195 | +# | 85 | +# |
196 | +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded | 86 | +# qmake configuration for linux-g++ with modifications for building with OpenEmbedded |
197 | +# | 87 | +# |
198 | + | 88 | + |
199 | +MAKEFILE_GENERATOR = UNIX | 89 | +MAKEFILE_GENERATOR = UNIX |
200 | +CONFIG += incremental | 90 | +CONFIG += incremental |
201 | +QMAKE_INCREMENTAL_STYLE = sublib | 91 | +QMAKE_INCREMENTAL_STYLE = sublib |
202 | + | 92 | + |
203 | +include(../common/linux.conf) | 93 | +include(../common/linux.conf) |
204 | + | 94 | + |
205 | +# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip | 95 | +# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip |
206 | +QMAKE_AR = $(OE_QMAKE_AR) cqs | 96 | +QMAKE_AR = $$(OE_QMAKE_AR) cqs |
207 | +QMAKE_STRIP = $(OE_QMAKE_STRIP) | 97 | +QMAKE_STRIP = $$(OE_QMAKE_STRIP) |
208 | +QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER) | 98 | +QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER) |
209 | + | 99 | + |
210 | +include(../common/gcc-base-unix.conf) | 100 | +include(../common/gcc-base-unix.conf) |
211 | + | 101 | + |
212 | +# *FLAGS from gcc-base.conf | 102 | +# *FLAGS from gcc-base.conf |
213 | +QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS) | 103 | +QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS) |
214 | +QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS) | 104 | +QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS) |
215 | +QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) | 105 | +QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS) |
216 | + | 106 | + |
217 | +include(../common/g++-unix.conf) | 107 | +include(../common/g++-unix.conf) |
218 | + | 108 | + |
219 | +# tc settings from g++-base.conf | 109 | +# tc settings from g++-base.conf |
220 | +QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc | 110 | +QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc |
221 | +QMAKE_CC = $(OE_QMAKE_CC) | 111 | +QMAKE_CC = $$(OE_QMAKE_CC) |
222 | +QMAKE_CXX = $(OE_QMAKE_CXX) | 112 | +QMAKE_CXX = $$(OE_QMAKE_CXX) |
223 | + | 113 | + |
224 | +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS) | 114 | +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS) |
225 | + | 115 | + |
226 | +QMAKE_LINK = $(OE_QMAKE_LINK) | 116 | +QMAKE_LINK = $$(OE_QMAKE_LINK) |
227 | +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) | 117 | +QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK) |
228 | +QMAKE_LINK_C = $(OE_QMAKE_LINK) | 118 | +QMAKE_LINK_C = $$(OE_QMAKE_LINK) |
229 | +QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK) | 119 | +QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK) |
230 | + | 120 | + |
231 | +# for the SDK | 121 | +# for the SDK |
232 | +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG) | 122 | +isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG) |
233 | + | 123 | + |
234 | +include(../oe-device-extra.pri) | 124 | +include(../oe-device-extra.pri) |
235 | + | 125 | + |
126 | +load(device_config) | ||
236 | +load(qt_config) | 127 | +load(qt_config) |
237 | diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h | 128 | diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h |
238 | new file mode 100644 | 129 | new file mode 100644 |
239 | index 0000000..dd12003 | 130 | index 0000000..5d22fb4 |
240 | --- /dev/null | 131 | --- /dev/null |
241 | +++ b/mkspecs/linux-oe-g++/qplatformdefs.h | 132 | +++ b/mkspecs/linux-oe-g++/qplatformdefs.h |
242 | @@ -0,0 +1,100 @@ | 133 | @@ -0,0 +1 @@ |
243 | +/**************************************************************************** | 134 | +#include "../linux-g++/qplatformdefs.h" |
244 | +** | ||
245 | +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). | ||
246 | +** Contact: http://www.qt-project.org/legal | ||
247 | +** | ||
248 | +** This file is part of the qmake spec of the Qt Toolkit. | ||
249 | +** | ||
250 | +** $QT_BEGIN_LICENSE:LGPL$ | ||
251 | +** Commercial License Usage | ||
252 | +** Licensees holding valid commercial Qt licenses may use this file in | ||
253 | +** accordance with the commercial license agreement provided with the | ||
254 | +** Software or, alternatively, in accordance with the terms contained in | ||
255 | +** a written agreement between you and Digia. For licensing terms and | ||
256 | +** conditions see http://qt.digia.com/licensing. For further information | ||
257 | +** use the contact form at http://qt.digia.com/contact-us. | ||
258 | +** | ||
259 | +** GNU Lesser General Public License Usage | ||
260 | +** Alternatively, this file may be used under the terms of the GNU Lesser | ||
261 | +** General Public License version 2.1 as published by the Free Software | ||
262 | +** Foundation and appearing in the file LICENSE.LGPL included in the | ||
263 | +** packaging of this file. Please review the following information to | ||
264 | +** ensure the GNU Lesser General Public License version 2.1 requirements | ||
265 | +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | ||
266 | +** | ||
267 | +** In addition, as a special exception, Digia gives you certain additional | ||
268 | +** rights. These rights are described in the Digia Qt LGPL Exception | ||
269 | +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | ||
270 | +** | ||
271 | +** GNU General Public License Usage | ||
272 | +** Alternatively, this file may be used under the terms of the GNU | ||
273 | +** General Public License version 3.0 as published by the Free Software | ||
274 | +** Foundation and appearing in the file LICENSE.GPL included in the | ||
275 | +** packaging of this file. Please review the following information to | ||
276 | +** ensure the GNU General Public License version 3.0 requirements will be | ||
277 | +** met: http://www.gnu.org/copyleft/gpl.html. | ||
278 | +** | ||
279 | +** | ||
280 | +** $QT_END_LICENSE$ | ||
281 | +** | ||
282 | +****************************************************************************/ | ||
283 | + | ||
284 | +#ifndef QPLATFORMDEFS_H | ||
285 | +#define QPLATFORMDEFS_H | ||
286 | + | ||
287 | +// Get Qt defines/settings | ||
288 | + | ||
289 | +#include "qglobal.h" | ||
290 | + | ||
291 | +// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs | ||
292 | + | ||
293 | +// 1) need to reset default environment if _BSD_SOURCE is defined | ||
294 | +// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 | ||
295 | +// 3) it seems older glibc need this to include the X/Open stuff | ||
296 | +#ifndef _GNU_SOURCE | ||
297 | +# define _GNU_SOURCE | ||
298 | +#endif | ||
299 | + | ||
300 | +#include <unistd.h> | ||
301 | + | ||
302 | + | ||
303 | +// We are hot - unistd.h should have turned on the specific APIs we requested | ||
304 | + | ||
305 | +#include <features.h> | ||
306 | +#include <pthread.h> | ||
307 | +#include <dirent.h> | ||
308 | +#include <fcntl.h> | ||
309 | +#include <grp.h> | ||
310 | +#include <pwd.h> | ||
311 | +#include <signal.h> | ||
312 | + | ||
313 | +#include <sys/types.h> | ||
314 | +#include <sys/ioctl.h> | ||
315 | +#include <sys/ipc.h> | ||
316 | +#include <sys/time.h> | ||
317 | +#include <sys/shm.h> | ||
318 | +#include <sys/socket.h> | ||
319 | +#include <sys/stat.h> | ||
320 | +#include <sys/wait.h> | ||
321 | +#include <netinet/in.h> | ||
322 | +#ifndef QT_NO_IPV6IFNAME | ||
323 | +#include <net/if.h> | ||
324 | +#endif | ||
325 | + | ||
326 | +#define QT_USE_XOPEN_LFS_EXTENSIONS | ||
327 | +#include "../common/posix/qplatformdefs.h" | ||
328 | + | ||
329 | +#undef QT_SOCKLEN_T | ||
330 | + | ||
331 | +#if defined(__GLIBC__) && (__GLIBC__ >= 2) | ||
332 | +#define QT_SOCKLEN_T socklen_t | ||
333 | +#else | ||
334 | +#define QT_SOCKLEN_T int | ||
335 | +#endif | ||
336 | + | ||
337 | +#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) | ||
338 | +#define QT_SNPRINTF ::snprintf | ||
339 | +#define QT_VSNPRINTF ::vsnprintf | ||
340 | +#endif | ||
341 | + | ||
342 | +#endif // QPLATFORMDEFS_H | ||
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch deleted file mode 100644 index 699e3856..00000000 --- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | From e5f8607cfa1d2bcc798686cdf7c87ea0c6577d30 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] qlibraryinfo: allow to set qt.conf from the outside using the | ||
5 | 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 4582001..ff65ef9 100644 | ||
23 | --- a/src/corelib/global/qlibraryinfo.cpp | ||
24 | +++ b/src/corelib/global/qlibraryinfo.cpp | ||
25 | @@ -163,7 +163,10 @@ void QLibrarySettings::load() | ||
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 | if (QFile::exists(qtconfig)) | ||
35 | return new QSettings(qtconfig, QSettings::IniFormat); | ||
36 | #ifdef QT_BUILD_QMAKE | ||
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch index 381cde29..8224171a 100644 --- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch +++ b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch | |||
@@ -1,165 +1,23 @@ | |||
1 | From c1dc6165d6a085f162ed32ef5697f645019f9ee0 Mon Sep 17 00:00:00 2001 | 1 | From 502b95b840a5f79e5a68e9bd5b10dbdc92485f1f Mon Sep 17 00:00:00 2001 |
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | 2 | From: Martin Jansa <Martin.Jansa@gmail.com> |
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | 3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 |
4 | Subject: [PATCH] Add -external-hostbindir option | 4 | Subject: [PATCH] Add -external-hostbindir option |
5 | 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 | 6 | * cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries |
17 | 7 | ||
18 | Upstream-Status: Pending | 8 | Upstream-Status: Inappropriate [OE specific] |
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 | 9 | ||
23 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | 10 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> |
24 | Signed-off-by: Simon Busch <morphis@gravedo.de> | 11 | Signed-off-by: Simon Busch <morphis@gravedo.de> |
25 | Signed-off-by: Jonathan Liu <net147@gmail.com> | 12 | Signed-off-by: Jonathan Liu <net147@gmail.com> |
26 | 13 | ||
27 | Conflicts: | ||
28 | configure | ||
29 | |||
30 | Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2 | 14 | Change-Id: Iacaa1c5531cd6dcc094891610c351673db55d7b2 |
31 | --- | 15 | --- |
32 | configure | 14 ++++++++++++++ | 16 | src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- |
33 | mkspecs/features/qt_functions.prf | 6 +++++- | 17 | src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- |
34 | mkspecs/features/qt_tool.prf | 4 +++- | 18 | src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- |
35 | qtbase.pro | 16 ++++++++++++++++ | 19 | 3 files changed, 6 insertions(+), 6 deletions(-) |
36 | src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++--- | ||
37 | src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++-- | ||
38 | src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +- | ||
39 | 7 files changed, 44 insertions(+), 8 deletions(-) | ||
40 | 20 | ||
41 | diff --git a/configure b/configure | ||
42 | index 052872e..1fcbb3a 100755 | ||
43 | --- a/configure | ||
44 | +++ b/configure | ||
45 | @@ -834,6 +834,7 @@ QT_HOST_BINS= | ||
46 | QT_HOST_LIBS= | ||
47 | QT_HOST_DATA= | ||
48 | QT_EXT_PREFIX= | ||
49 | +QT_EXTERNAL_HOST_BINS= | ||
50 | |||
51 | #flags for SQL drivers | ||
52 | QT_CFLAGS_PSQL= | ||
53 | @@ -953,6 +954,7 @@ while [ "$#" -gt 0 ]; do | ||
54 | -testsdir| \ | ||
55 | -hostdatadir| \ | ||
56 | -hostbindir| \ | ||
57 | + -external-hostbindir| \ | ||
58 | -hostlibdir| \ | ||
59 | -extprefix| \ | ||
60 | -sysroot| \ | ||
61 | @@ -1185,6 +1187,9 @@ while [ "$#" -gt 0 ]; do | ||
62 | extprefix) | ||
63 | QT_EXT_PREFIX="$VAL" | ||
64 | ;; | ||
65 | + external-hostbindir) | ||
66 | + QT_EXTERNAL_HOST_BINS="$VAL" | ||
67 | + ;; | ||
68 | pkg-config) | ||
69 | if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then | ||
70 | CFG_PKGCONFIG="$VAL" | ||
71 | @@ -2447,6 +2452,10 @@ Installation options: | ||
72 | -hostdatadir <dir> . Data used by qmake will be installed to <dir> | ||
73 | (default HOSTPREFIX) | ||
74 | |||
75 | + -external-hostbindir <dir> Use external host executables instead of building them | ||
76 | + (not used by defaut) | ||
77 | + | ||
78 | + | ||
79 | Configure options: | ||
80 | |||
81 | The defaults (*) are usually acceptable. A plus (+) denotes a default value | ||
82 | @@ -3209,6 +3218,11 @@ fi | ||
83 | # command line and environment validation | ||
84 | #------------------------------------------------------------------------------- | ||
85 | |||
86 | +# default is empty, don't call makeabs if it is empty | ||
87 | +if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then | ||
88 | + QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"` | ||
89 | +fi | ||
90 | + | ||
91 | # update QT_CONFIG to show our current predefined configuration | ||
92 | CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h | ||
93 | case "$CFG_QCONFIG" in | ||
94 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
95 | index 54641ce..7d7baa4 100644 | ||
96 | --- a/mkspecs/features/qt_functions.prf | ||
97 | +++ b/mkspecs/features/qt_functions.prf | ||
98 | @@ -71,7 +71,11 @@ defineTest(qtHaveModule) { | ||
99 | defineTest(qtPrepareTool) { | ||
100 | cmd = $$eval(QT_TOOL.$${2}.binary) | ||
101 | isEmpty(cmd) { | ||
102 | - cmd = $$[QT_HOST_BINS]/$$2 | ||
103 | + QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
104 | + isEmpty(QT_EXTERNAL_HOST_BINS): \ | ||
105 | + cmd = $$[QT_HOST_BINS]/$$2 | ||
106 | + else: \ | ||
107 | + cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2 | ||
108 | exists($${cmd}.pl) { | ||
109 | $${1}_EXE = $${cmd}.pl | ||
110 | cmd = perl -w $$system_path($${cmd}.pl) | ||
111 | diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf | ||
112 | index bdeb59c..b8c539f 100644 | ||
113 | --- a/mkspecs/features/qt_tool.prf | ||
114 | +++ b/mkspecs/features/qt_tool.prf | ||
115 | @@ -14,10 +14,12 @@ load(qt_app) | ||
116 | CONFIG += console | ||
117 | DEFINES *= QT_USE_QSTRINGBUILDER | ||
118 | |||
119 | +QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
120 | + | ||
121 | # If we are doing a prefix build, create a "module" pri which enables | ||
122 | # qtPrepareTool() to work with the non-installed build. | ||
123 | # Non-bootstrapped tools always need this because of the environment setup. | ||
124 | -!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) { | ||
125 | +!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)):isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
126 | isEmpty(MODULE):MODULE = $$TARGET | ||
127 | |||
128 | load(qt_build_paths) | ||
129 | diff --git a/qtbase.pro b/qtbase.pro | ||
130 | index 11cff9e..ec03669 100644 | ||
131 | --- a/qtbase.pro | ||
132 | +++ b/qtbase.pro | ||
133 | @@ -38,6 +38,19 @@ CONFIG -= qt | ||
134 | |||
135 | ### installations #### | ||
136 | |||
137 | +QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS] | ||
138 | + | ||
139 | +#qmake | ||
140 | +qmake.path = $$[QT_HOST_BINS] | ||
141 | +qmake.files = $$OUT_PWD/bin/qmake | ||
142 | +!isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
143 | + qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake | ||
144 | +} | ||
145 | +equals(QMAKE_HOST.os, Windows) { | ||
146 | + qmake.files = $${qmake.files}.exe | ||
147 | +} | ||
148 | +INSTALLS += qmake | ||
149 | + | ||
150 | #licheck | ||
151 | licheck.path = $$[QT_HOST_BINS] | ||
152 | licheck.files = $$PWD/bin/$$QT_LICHECK | ||
153 | @@ -51,6 +64,9 @@ INSTALLS += fixqt4headers | ||
154 | #syncqt | ||
155 | syncqt.path = $$[QT_HOST_BINS] | ||
156 | syncqt.files = $$PWD/bin/syncqt.pl | ||
157 | +!isEmpty(QT_EXTERNAL_HOST_BINS) { | ||
158 | + syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl | ||
159 | +} | ||
160 | INSTALLS += syncqt | ||
161 | |||
162 | # If we are doing a prefix build, create a "module" pri which enables | ||
163 | diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in | 21 | diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in |
164 | index a5ed8b2..0e11a1e 100644 | 22 | index a5ed8b2..0e11a1e 100644 |
165 | --- a/src/corelib/Qt5CoreConfigExtras.cmake.in | 23 | --- a/src/corelib/Qt5CoreConfigExtras.cmake.in |
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 index e24d4758..c105488e 100644 --- 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 | |||
@@ -1,4 +1,4 @@ | |||
1 | From d83234c35de8f52ce3bf6eb262ad8e6af467ac34 Mon Sep 17 00:00:00 2001 | 1 | From bf1498618415e7b1e57b54881b1e56d74f2cdf6b Mon Sep 17 00:00:00 2001 |
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | 2 | From: Martin Jansa <Martin.Jansa@gmail.com> |
3 | Date: Sat, 27 Apr 2013 23:15:37 +0200 | 3 | Date: Sat, 27 Apr 2013 23:15:37 +0200 |
4 | Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements | 4 | Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements |
@@ -68,7 +68,7 @@ Signed-off-by: Jonathan Liu <net147@gmail.com> | |||
68 | 2 files changed, 14 insertions(+), 1 deletion(-) | 68 | 2 files changed, 14 insertions(+), 1 deletion(-) |
69 | 69 | ||
70 | diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf | 70 | diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf |
71 | index 71e96b4..0d7535c 100644 | 71 | index 0c5f080..a6e4f09 100644 |
72 | --- a/mkspecs/features/qt.prf | 72 | --- a/mkspecs/features/qt.prf |
73 | +++ b/mkspecs/features/qt.prf | 73 | +++ b/mkspecs/features/qt.prf |
74 | @@ -317,6 +317,19 @@ contains(TEMPLATE, .*app) { | 74 | @@ -317,6 +317,19 @@ contains(TEMPLATE, .*app) { |
@@ -89,13 +89,13 @@ index 71e96b4..0d7535c 100644 | |||
89 | +} | 89 | +} |
90 | + | 90 | + |
91 | QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN | 91 | QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN |
92 | contains(QT_CONFIG, static) { | 92 | qtConfig(static) { |
93 | QT_PLUGIN_VERIFY += QTPLUGIN | 93 | QT_PLUGIN_VERIFY += QTPLUGIN |
94 | diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf | 94 | diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf |
95 | index b367bc1..209cc43 100644 | 95 | index e754a17..4c1530e 100644 |
96 | --- a/mkspecs/features/qt_common.prf | 96 | --- a/mkspecs/features/qt_common.prf |
97 | +++ b/mkspecs/features/qt_common.prf | 97 | +++ b/mkspecs/features/qt_common.prf |
98 | @@ -38,7 +38,7 @@ contains(TEMPLATE, .*lib) { | 98 | @@ -37,7 +37,7 @@ contains(TEMPLATE, .*lib) { |
99 | lib_replace.replace = | 99 | lib_replace.replace = |
100 | } else { | 100 | } else { |
101 | lib_replace.match = $$rplbase/lib | 101 | lib_replace.match = $$rplbase/lib |
diff --git a/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch deleted file mode 100644 index c58b1d9a..00000000 --- a/recipes-qt/qt5/qtbase/0006-QOpenGLPaintDevice-sub-area-support.patch +++ /dev/null | |||
@@ -1,154 +0,0 @@ | |||
1 | From f207997b59f1381cf3523521209cb435b1a73f25 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] 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 75f09d6..17d7155 100644 | ||
25 | --- a/src/gui/opengl/qopenglpaintdevice.cpp | ||
26 | +++ b/src/gui/opengl/qopenglpaintdevice.cpp | ||
27 | @@ -141,6 +141,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 | @@ -222,6 +228,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 dffa68c..66a1e3d 100644 | ||
54 | --- a/src/gui/opengl/qopenglpaintdevice.h | ||
55 | +++ b/src/gui/opengl/qopenglpaintdevice.h | ||
56 | @@ -59,12 +59,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 78e6b7a..6630461 100644 | ||
73 | --- a/src/gui/opengl/qopenglpaintdevice_p.h | ||
74 | +++ b/src/gui/opengl/qopenglpaintdevice_p.h | ||
75 | @@ -71,6 +71,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 d93871c..be2bee9 100644 | ||
85 | --- a/src/gui/opengl/qopenglpaintengine.cpp | ||
86 | +++ b/src/gui/opengl/qopenglpaintengine.cpp | ||
87 | @@ -2084,7 +2084,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 | @@ -2171,7 +2174,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 | @@ -2213,6 +2216,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 | @@ -2221,12 +2225,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 c9f3282..7c0616b 100644 | ||
132 | --- a/src/gui/opengl/qopenglpaintengine_p.h | ||
133 | +++ b/src/gui/opengl/qopenglpaintengine_p.h | ||
134 | @@ -270,6 +270,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 9a7b1eb..6f301f8 100644 | ||
144 | --- a/src/gui/opengl/qopengltextureglyphcache.cpp | ||
145 | +++ b/src/gui/opengl/qopengltextureglyphcache.cpp | ||
146 | @@ -403,7 +403,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()) { | ||
diff --git a/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch b/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch deleted file mode 100644 index 4ea4061a..00000000 --- a/recipes-qt/qt5/qtbase/0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 7ab6ff7ba20a3173c10a76814d3c9ed312c80627 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 8 Jun 2015 13:59:25 -0700 | ||
4 | Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T | ||
5 | |||
6 | This helps to make sure that QT_SOCKLEN_T is defined to be 'int' | ||
7 | only when its glibc < 2 and not also for the libraries which may define | ||
8 | it as per standards but are not glibc, e.g. musl | ||
9 | |||
10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
11 | --- | ||
12 | mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++--- | ||
13 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
14 | |||
15 | diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h | ||
16 | index dd12003..8623651 100644 | ||
17 | --- a/mkspecs/linux-oe-g++/qplatformdefs.h | ||
18 | +++ b/mkspecs/linux-oe-g++/qplatformdefs.h | ||
19 | @@ -86,10 +86,10 @@ | ||
20 | |||
21 | #undef QT_SOCKLEN_T | ||
22 | |||
23 | -#if defined(__GLIBC__) && (__GLIBC__ >= 2) | ||
24 | -#define QT_SOCKLEN_T socklen_t | ||
25 | -#else | ||
26 | +#if defined(__GLIBC__) && (__GLIBC__ < 2) | ||
27 | #define QT_SOCKLEN_T int | ||
28 | +#else | ||
29 | +#define QT_SOCKLEN_T socklen_t | ||
30 | #endif | ||
31 | |||
32 | #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) | ||
diff --git a/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch b/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch index bac18412..6d64e6b5 100644 --- a/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch +++ b/recipes-qt/qt5/qtbase/0008-configure-paths-for-target-qmake-properly.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 0f4ab3e27938002134e8f3f9eb12cf9c50b2ab95 Mon Sep 17 00:00:00 2001 | 1 | From cc926956758bf8170c4e49c66e1066524b43f65f Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> | 2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> |
3 | Date: Fri, 13 Nov 2015 12:36:11 +0100 | 3 | Date: Fri, 13 Nov 2015 12:36:11 +0100 |
4 | Subject: [PATCH] configure paths for target qmake properly | 4 | Subject: [PATCH] configure paths for target qmake properly |
@@ -19,11 +19,11 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | |||
19 | 1 file changed, 19 insertions(+), 4 deletions(-) | 19 | 1 file changed, 19 insertions(+), 4 deletions(-) |
20 | 20 | ||
21 | diff --git a/configure b/configure | 21 | diff --git a/configure b/configure |
22 | index f49a674..d30d0ca 100755 | 22 | index 8b33c5b..1df248f 100755 |
23 | --- a/configure | 23 | --- a/configure |
24 | +++ b/configure | 24 | +++ b/configure |
25 | @@ -3792,8 +3792,13 @@ if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then | 25 | @@ -1545,8 +1545,13 @@ if [ -z "$QT_REL_HOST_DATA" ]; then |
26 | QMAKE_CONFIG="$QMAKE_CONFIG compile_examples" | 26 | fi |
27 | fi | 27 | fi |
28 | 28 | ||
29 | -shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` | 29 | -shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` |
@@ -38,7 +38,7 @@ index f49a674..d30d0ca 100755 | |||
38 | 38 | ||
39 | QT_CONFIGURE_STR_OFF=0 | 39 | QT_CONFIGURE_STR_OFF=0 |
40 | 40 | ||
41 | @@ -3826,7 +3831,11 @@ QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS | 41 | @@ -1579,7 +1584,11 @@ QT_CONFIGURE_STRS_ALL=$QT_CONFIGURE_STRS |
42 | 42 | ||
43 | QT_CONFIGURE_STR_OFFSETS= | 43 | QT_CONFIGURE_STR_OFFSETS= |
44 | QT_CONFIGURE_STRS= | 44 | QT_CONFIGURE_STRS= |
@@ -51,7 +51,7 @@ index f49a674..d30d0ca 100755 | |||
51 | addConfStr "$QT_REL_HOST_BINS" | 51 | addConfStr "$QT_REL_HOST_BINS" |
52 | addConfStr "$QT_REL_HOST_LIBS" | 52 | addConfStr "$QT_REL_HOST_LIBS" |
53 | addConfStr "$QT_REL_HOST_DATA" | 53 | addConfStr "$QT_REL_HOST_DATA" |
54 | @@ -3838,6 +3847,12 @@ addConfStr "$shortspec" | 54 | @@ -1591,6 +1600,12 @@ addConfStr "$shortspec" |
55 | #------------------------------------------------------------------------------- | 55 | #------------------------------------------------------------------------------- |
56 | [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global" | 56 | [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global" |
57 | 57 | ||
@@ -62,9 +62,9 @@ index f49a674..d30d0ca 100755 | |||
62 | +fi | 62 | +fi |
63 | + | 63 | + |
64 | cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF | 64 | cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF |
65 | /* License Info */ | 65 | /* Installation date */ |
66 | static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee"; | 66 | static const char qt_configure_installation [12+11] = "qt_instdate=2012-12-20"; |
67 | @@ -3850,7 +3865,7 @@ static const char qt_configure_installation [12+11] = "qt_instdate=2 | 67 | @@ -1599,7 +1614,7 @@ static const char qt_configure_installation [12+11] = "qt_instdate=2 |
68 | static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX"; | 68 | static const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=$QT_INSTALL_PREFIX"; |
69 | #ifdef QT_BUILD_QMAKE | 69 | #ifdef QT_BUILD_QMAKE |
70 | static const char qt_configure_ext_prefix_path_str [512 + 12] = "qt_epfxpath=$QT_EXT_PREFIX"; | 70 | static const char qt_configure_ext_prefix_path_str [512 + 12] = "qt_epfxpath=$QT_EXT_PREFIX"; |
diff --git a/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch b/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch new file mode 100644 index 00000000..cb9de793 --- /dev/null +++ b/recipes-qt/qt5/qtbase/0009-Disable-all-unknown-features-instead-of-erroring-out.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From 9eb81e3bdeda4f90e5f2942400aef38b51a356bd Mon Sep 17 00:00:00 2001 | ||
2 | From: Samuli Piippo <samuli.piippo@qt.io> | ||
3 | Date: Mon, 24 Oct 2016 09:45:18 +0300 | ||
4 | Subject: [PATCH] Disable all unknown features instead of erroring out | ||
5 | |||
6 | Task-number: QTBUG-56656 | ||
7 | Change-Id: Ib884fe33cac74439f9592b145937f6b75ced8447 | ||
8 | --- | ||
9 | mkspecs/features/qt_configure.prf | 3 ++- | ||
10 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf | ||
13 | index e8fa0c6..0ca5670 100644 | ||
14 | --- a/mkspecs/features/qt_configure.prf | ||
15 | +++ b/mkspecs/features/qt_configure.prf | ||
16 | @@ -1009,7 +1009,8 @@ defineReplace(qtConfEvaluateSingleExpression) { | ||
17 | error("Expression '$$1' is accessing field '$$var' of non-local feature $${feature}.") | ||
18 | return($$result) | ||
19 | } | ||
20 | - error("Unknown feature object $${feature} in expression '$${1}'.") | ||
21 | + warning("Unknown feature object $${feature} in expression '$${1}'.") | ||
22 | + result = false | ||
23 | } | ||
24 | !qtConfCheckFeature($$feature): \ | ||
25 | error("Expression '$$1' is accessing non-emitted feature $${feature}.") | ||
26 | -- | ||
27 | 1.9.1 | ||
28 | |||
diff --git a/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch b/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch deleted file mode 100644 index 23d0ab38..00000000 --- a/recipes-qt/qt5/qtbase/0009-Reorder-EGL-libraries-from-pkgconfig-and-defaults.patch +++ /dev/null | |||
@@ -1,95 +0,0 @@ | |||
1 | From 91b87aed0a2a96b0d6b54757ea13c75ee648a9b0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Julien Gueytat <contact@jgueytat.fr> | ||
3 | Date: Wed, 27 Apr 2016 19:24:39 +0200 | ||
4 | Subject: [PATCH] Reorder EGL libraries from pkgconfig and defaults: | ||
5 | |||
6 | https://bugreports.qt.io/browse/QTBUG-50838 | ||
7 | https://bugreports.qt.io/browse/QTBUG-52739 | ||
8 | |||
9 | The modification is the less intrusive possible. It only swaps LIBS and QMAKE_LIBS_EGL. | ||
10 | The reason behind that was that for the RaspberryPi: | ||
11 | * -lEGL -GLESv2 can link | ||
12 | * -lGLESv2 -lEGL can't | ||
13 | |||
14 | Adding -lEGL -lGLESv2 and then -lEGL gives -lGLESv2 -lEGL ... the libraries swaped. | ||
15 | |||
16 | Signed-off-by: Julien Gueytat <contact@jgueytat.fr> | ||
17 | --- | ||
18 | config.tests/qpa/egl/egl.pro | 5 ++++- | ||
19 | config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | 12 +++++++----- | ||
20 | configure | 16 ++++++++++++++-- | ||
21 | 3 files changed, 25 insertions(+), 8 deletions(-) | ||
22 | |||
23 | diff --git a/config.tests/qpa/egl/egl.pro b/config.tests/qpa/egl/egl.pro | ||
24 | index b5396da..828b674 100644 | ||
25 | --- a/config.tests/qpa/egl/egl.pro | ||
26 | +++ b/config.tests/qpa/egl/egl.pro | ||
27 | @@ -5,6 +5,9 @@ for(p, QMAKE_LIBDIR_EGL) { | ||
28 | } | ||
29 | |||
30 | !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL | ||
31 | -!isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL | ||
32 | + | ||
33 | +BACKUP_LIBS = $$LIBS | ||
34 | +!isEmpty(QMAKE_LIBS_EGL): LIBS = $$QMAKE_LIBS_EGL | ||
35 | +LIBS += $$BACKUP_LIBS | ||
36 | |||
37 | CONFIG -= qt | ||
38 | diff --git a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | ||
39 | index d8b1c3e..06f7241 100644 | ||
40 | --- a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | ||
41 | +++ b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | ||
42 | @@ -1,11 +1,13 @@ | ||
43 | SOURCES = eglfs-brcm.cpp | ||
44 | |||
45 | -CONFIG -= qt | ||
46 | - | ||
47 | -INCLUDEPATH += $$QMAKE_INCDIR_EGL | ||
48 | - | ||
49 | for(p, QMAKE_LIBDIR_EGL) { | ||
50 | LIBS += -L$$p | ||
51 | } | ||
52 | |||
53 | -LIBS += -lEGL -lGLESv2 -lbcm_host | ||
54 | +INCLUDEPATH += $$QMAKE_INCDIR_EGL | ||
55 | + | ||
56 | +BACKUP_LIBS = $$LIBS | ||
57 | +LIBS = -lEGL -lGLESv2 -lbcm_host | ||
58 | +LIBS += $$BACKUP_LIBS | ||
59 | + | ||
60 | +CONFIG -= qt | ||
61 | diff --git a/configure b/configure | ||
62 | index d30d0ca..14f348c 100755 | ||
63 | --- a/configure | ||
64 | +++ b/configure | ||
65 | @@ -5891,7 +5891,9 @@ if [ "$CFG_EGL" != "no" ]; then | ||
66 | QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL" | ||
67 | QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL" | ||
68 | QMakeVar set QMAKE_CFLAGS_EGL "`echo " $QMAKE_CFLAGS_EGL " | sed -e 's, -I[^ ]* , ,g;s,^ ,,;s, $,,'`" | ||
69 | - fi # detect EGL support | ||
70 | + fi | ||
71 | + | ||
72 | + # detect EGL support | ||
73 | if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then | ||
74 | CFG_EGL=yes | ||
75 | if compileTest qpa/egl-x11 "EGL-X11" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then | ||
76 | @@ -5914,8 +5916,18 @@ fi | ||
77 | if [ "$CFG_EGLFS" != "no" ]; then | ||
78 | if [ "$XPLATFORM_QNX" = "no" ] && [ "$CFG_OPENGL" != "no" ]; then | ||
79 | CFG_EGLFS="$CFG_EGL" | ||
80 | + | ||
81 | + if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then | ||
82 | + QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` | ||
83 | + QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null` | ||
84 | + QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null` | ||
85 | + QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL" | ||
86 | + QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL" | ||
87 | + QMakeVar set QMAKE_CFLAGS_EGL "`echo " $QMAKE_CFLAGS_EGL " | sed -e 's, -I[^ ]* , ,g;s,^ ,,;s, $,,'`" | ||
88 | + fi | ||
89 | + | ||
90 | # Detect eglfs backends. | ||
91 | - if compileTest qpa/eglfs-brcm "eglfs-brcm"; then | ||
92 | + if compileTest qpa/eglfs-brcm "eglfs-brcm" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then | ||
93 | CFG_EGLFS_BRCM=yes | ||
94 | else | ||
95 | CFG_EGLFS_BRCM=no | ||
diff --git a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch deleted file mode 100644 index 1ab8abef..00000000 --- a/recipes-qt/qt5/qtbase/0012-Add-external-hostbindir-option-for-native-sdk.patch +++ /dev/null | |||
@@ -1,131 +0,0 @@ | |||
1 | From cb66a3193b1b1b8b402548b615c3675c4adcf13a 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] 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 | Conflicts: | ||
30 | tools/configure/configureapp.cpp | ||
31 | --- | ||
32 | configure | 1 + | ||
33 | qmake/property.cpp | 1 + | ||
34 | src/corelib/global/qlibraryinfo.cpp | 3 ++- | ||
35 | src/corelib/global/qlibraryinfo.h | 1 + | ||
36 | tools/configure/configureapp.cpp | 11 +++++++++++ | ||
37 | 5 files changed, 16 insertions(+), 1 deletion(-) | ||
38 | |||
39 | diff --git a/configure b/configure | ||
40 | index 14f348c..61f22e8 100755 | ||
41 | --- a/configure | ||
42 | +++ b/configure | ||
43 | @@ -3839,6 +3839,7 @@ fi | ||
44 | addConfStr "$QT_REL_HOST_BINS" | ||
45 | addConfStr "$QT_REL_HOST_LIBS" | ||
46 | addConfStr "$QT_REL_HOST_DATA" | ||
47 | +addConfStr "$QT_EXTERNAL_HOST_BINS" | ||
48 | addConfStr "$shortxspec" | ||
49 | addConfStr "$shortspec" | ||
50 | |||
51 | diff --git a/qmake/property.cpp b/qmake/property.cpp | ||
52 | index 9ee08f4..e6ecf92 100644 | ||
53 | --- a/qmake/property.cpp | ||
54 | +++ b/qmake/property.cpp | ||
55 | @@ -63,6 +63,7 @@ static const struct { | ||
56 | { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true }, | ||
57 | { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true }, | ||
58 | { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true }, | ||
59 | + { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true }, | ||
60 | { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true }, | ||
61 | { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true }, | ||
62 | }; | ||
63 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
64 | index ff65ef9..3726831 100644 | ||
65 | --- a/src/corelib/global/qlibraryinfo.cpp | ||
66 | +++ b/src/corelib/global/qlibraryinfo.cpp | ||
67 | @@ -381,7 +381,7 @@ QLibraryInfo::isDebugBuild() | ||
68 | */ | ||
69 | |||
70 | static const struct { | ||
71 | - char key[19], value[13]; | ||
72 | + char key[21], value[13]; | ||
73 | } qtConfEntries[] = { | ||
74 | { "Prefix", "." }, | ||
75 | { "Documentation", "doc" }, // should be ${Data}/doc | ||
76 | @@ -406,6 +406,7 @@ static const struct { | ||
77 | { "HostBinaries", "bin" }, | ||
78 | { "HostLibraries", "lib" }, | ||
79 | { "HostData", "." }, | ||
80 | + { "ExternalHostBinaries", "" }, | ||
81 | { "TargetSpec", "" }, | ||
82 | { "HostSpec", "" }, | ||
83 | { "HostPrefix", "" }, | ||
84 | diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h | ||
85 | index 362d47d..a2326e2 100644 | ||
86 | --- a/src/corelib/global/qlibraryinfo.h | ||
87 | +++ b/src/corelib/global/qlibraryinfo.h | ||
88 | @@ -87,6 +87,7 @@ public: | ||
89 | HostBinariesPath, | ||
90 | HostLibrariesPath, | ||
91 | HostDataPath, | ||
92 | + ExternalHostBinariesPath, | ||
93 | TargetSpecPath, | ||
94 | HostSpecPath, | ||
95 | HostPrefixPath, | ||
96 | diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp | ||
97 | index 0fa205b..2921e2b 100644 | ||
98 | --- a/tools/configure/configureapp.cpp | ||
99 | +++ b/tools/configure/configureapp.cpp | ||
100 | @@ -1219,6 +1219,13 @@ void Configure::parseCmdLine() | ||
101 | dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i); | ||
102 | } | ||
103 | |||
104 | + else if (configCmdLine.at(i) == "-external-hostbindir") { | ||
105 | + ++i; | ||
106 | + if (i == argCount) | ||
107 | + break; | ||
108 | + dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i); | ||
109 | + } | ||
110 | + | ||
111 | else if (configCmdLine.at(i) == "-make-tool") { | ||
112 | ++i; | ||
113 | if (i == argCount) | ||
114 | @@ -4171,6 +4178,9 @@ void Configure::generateQConfigCpp() | ||
115 | |||
116 | if (dictionary["QT_REL_HOST_DATA"].isEmpty()) | ||
117 | dictionary["QT_REL_HOST_DATA"] = haveHpx ? "." : dictionary["QT_REL_INSTALL_ARCHDATA"]; | ||
118 | + | ||
119 | + if (dictionary["QT_EXTERNAL_HOST_BINS"].isEmpty()) | ||
120 | + dictionary["QT_EXTERNAL_HOST_BINS"] = haveHpx ? "bin" : dictionary["QT_REL_INSTALL_BINS"]; | ||
121 | |||
122 | confStringOff = 0; | ||
123 | addConfStr(0, dictionary["QT_REL_INSTALL_DOCS"]); | ||
124 | @@ -4190,6 +4200,7 @@ void Configure::generateQConfigCpp() | ||
125 | addConfStr(1, dictionary["QT_REL_HOST_BINS"]); | ||
126 | addConfStr(1, dictionary["QT_REL_HOST_LIBS"]); | ||
127 | addConfStr(1, dictionary["QT_REL_HOST_DATA"]); | ||
128 | + addConfStr(1, dictionary["QT_EXTERNAL_HOST_BINS"]); | ||
129 | addConfStr(1, targSpec); | ||
130 | addConfStr(1, hostSpec); | ||
131 | |||
diff --git a/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch b/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch deleted file mode 100644 index 7b681dce..00000000 --- a/recipes-qt/qt5/qtbase/0013-Fix-build-with-QT_NO_OPENGL.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 2e176e3d10535e4fdaa6ecc919538f66f4a2930d Mon Sep 17 00:00:00 2001 | ||
2 | From: Andy Nichols <andy.nichols@qt.io> | ||
3 | Date: Mon, 11 Jul 2016 09:18:33 +0200 | ||
4 | Subject: QWidgetBackingStore: Fix build with QT_NO_OPENGL | ||
5 | |||
6 | A define moved out of the #ifndef QT_NO_OPENGL scope. | ||
7 | |||
8 | Change-Id: I41c943b97f165b5171581e01f3a4b2d3fb25747e | ||
9 | Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> | ||
10 | |||
11 | Upstream-Status: Backport | ||
12 | Signed-off-by: Johannes Pointner <johannes.pointner@br-automation.com> | ||
13 | --- | ||
14 | src/widgets/kernel/qwidgetbackingstore.cpp | 2 ++ | ||
15 | 1 file changed, 2 insertions(+) | ||
16 | |||
17 | diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp | ||
18 | index 32aabce..242e625 100644 | ||
19 | --- a/src/widgets/kernel/qwidgetbackingstore.cpp | ||
20 | +++ b/src/widgets/kernel/qwidgetbackingstore.cpp | ||
21 | @@ -67,7 +67,9 @@ QT_BEGIN_NAMESPACE | ||
22 | |||
23 | extern QRegion qt_dirtyRegion(QWidget *); | ||
24 | |||
25 | +#ifndef QT_NO_OPENGL | ||
26 | Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) | ||
27 | +#endif | ||
28 | |||
29 | /** | ||
30 | * Flushes the contents of the \a backingStore into the screen area of \a widget. | ||
31 | -- | ||
32 | cgit v1.0-4-g1e03 | ||
33 | |||