diff options
| author | Martin Jansa <Martin.Jansa@gmail.com> | 2015-05-28 14:52:48 +0200 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2015-06-04 12:06:55 +0200 |
| commit | 973ec91c88329217c79457d954e90226b4e73a14 (patch) | |
| tree | 858c9058104cb9ac8a78793364f1309567cda2dd /recipes-qt/qt5/qtbase | |
| parent | 4d27cf929bb5f5ae8085c7fddd4ead9f37f4d48c (diff) | |
| download | meta-qt5-973ec91c88329217c79457d954e90226b4e73a14.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} ) | |||
