aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2017-01-26 16:54:50 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2017-01-26 16:18:39 +0100
commit333949a8239dfa7788b35f1059614733e11a6a25 (patch)
tree420843abad8bfc939484fa34bd6f7da9d432db8d /recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
parentc0ba8ab590ba4e17a2a04925cf48915233d4f493 (diff)
Upgrade to Qt 5.8
The linux-oe-g++ mkspec is changed to use $$(...) operator to obtain the contents of an environment value when qmake is run instead of when Makefile is processed. All OE_QMAKE_xxx variables need to be exported for qmake to find them. configure's setBootstrapVariable function needs to change $$(..) to normal $(...) operator to work with qmake's Makefile. qt.conf generation for qtbase recipes is not needed, as configure will generate its own version based on configure arguments. Skip running qmake, since configure is now automatically invoked when it's run in qtbase's root folder. Update PACKAGECONFIGs for qtbase to match current configure options. The new Qt configuration system [1] can be used with a new variable EXTRA_QMAKEVARS_CONFIGURE, which takes both command line and feature arguments. Merge the two qtwayland recipes to one that supports all three targets (target, native, nativesdk) without need for additional patch. Recipes for new Qt modules: QtSCXML, QtNetworkAuth, QtGamepad. Removes qtdeclarative-render2d [1] https://www.mail-archive.com/development@qt-project.org/msg25257.html Change-Id: Ib37c4d7323e8b45aa2b171e8427b6ec15aaee213 Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch')
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch314
1 files changed, 53 insertions, 261 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 @@
-From d6c75f788e15fb552eacb08359698a1342a97f20 Mon Sep 17 00:00:00 2001
+From 2784921c40d0b523c75e613e48b7fd1e90ba3ef1 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Mon, 15 Apr 2013 04:29:32 +0200
Subject: [PATCH] Add linux-oe-g++ platform
@@ -7,176 +7,53 @@ Subject: [PATCH] Add linux-oe-g++ platform
shell environment, because it's easier for qt recipes to export
*FLAGS or CC specific for given recipe
-* configure: add getQEvalMakeConf and getXQEvalMakeConf
- Allow expansion of $(...) references from qmake.conf to generate
- qmake environment from shell environment as exported by qmake5_base
-
-* configure: don't export SYSTEM_VARIABLES to .qmake.vars
- linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
- causing issues as we need g++ to be used as linker
+* configure: extend setBootstrapVariable to convert $$(...) operator
+ to $(...) operator to work in qmake's Makefiles
* configure.prf: Allow to add extra arguments to make
sometimes we would like to add -e or define some variable and respect it from both
Makefiles used in configure tests and also Makefiles to build the application
-* OE_QMAKE_CXX in order to allow compiler version check to succeed
- which allows WebKit to be enabled.
-
-* Other variables in order to let config.tests to use our -platform
- settings
-
-* Add setBootstrapEvalVariable to bootstrap qmake with our environment
- too, this allows us to use -platform linux-oe-g++ also for native
- recipe
-
-* disable gdb_dwarf_index
- * qmake is trying to call native gdb and we don't depend on gdb-native
- (or even provide gdb-native)
- * fixes errors like this:
- /bin/sh: gdb: command not found
- /bin/sh: line 0: test: -gt: unary operator expected
- which are not fatal, but still misleading in do_configure output
-
-* add -target suffix to qmake built in qtbase configure, this way we can
- use qmake from qtbase-native, but then include qmake built for target
- in qtbase-tools package (smilarly for nativesdk-qtbase).
-
Upstream-Status: Inappropriate [embedded specific]
too OE specific, probably cannot be upstreamed
Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
- configure | 55 ++++++++++++-------
- mkspecs/features/configure.prf | 4 +-
- mkspecs/linux-oe-g++/qmake.conf | 42 +++++++++++++++
- mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++
- 4 files changed, 181 insertions(+), 20 deletions(-)
+ configure | 2 +-
+ mkspecs/features/configure.prf | 4 ++--
+ mkspecs/features/qt_functions.prf | 2 +-
+ mkspecs/linux-oe-g++/qmake.conf | 43 ++++++++++++++++++++++++++++++++++++
+ mkspecs/linux-oe-g++/qplatformdefs.h | 1 +
+ 5 files changed, 48 insertions(+), 4 deletions(-)
create mode 100644 mkspecs/linux-oe-g++/qmake.conf
create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
diff --git a/configure b/configure
-index 0ba0c31..052872e 100755
+index 789ba4c..59cce01 100755
--- a/configure
+++ b/configure
-@@ -333,6 +333,16 @@ getQMakeConf()
- getSingleQMakeVariable "$1" "$specvals"
- }
-
-+# OE qmake.conf is reading some variables from shell env
-+# read them from qmake.conf, replace qmake () syntax with shell and eval
-+getQEvalMakeConf()
-+{
-+ VAL=`getQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
-+ EVAL=`eval "echo ${VAL}"`
-+# echo "Running getQEvalMakeConf: var='$1', val='`getQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
-+ eval "echo ${VAL}"
-+}
-+
- getXQMakeConf()
+@@ -1624,7 +1624,7 @@ fi
+ # is where the resulting variable is written to
+ setBootstrapVariable()
{
- if [ -z "$xspecvals" ]; then
-@@ -357,6 +367,16 @@ testXConfig()
- esac
- }
-
-+# OE qmake.conf is reading some variables from shell env
-+# read them from qmake.conf, replace qmake () syntax with shell and eval
-+getXQEvalMakeConf()
-+{
-+ VAL=`getXQMakeConf "$1" | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
-+ EVAL=`eval "echo ${VAL}"`
-+# echo "Running getXQEvalMakeConf: var='$1', val='`getXQMakeConf \"$1\"`, val-sed='$VAL', eval='$EVAL'" >&2
-+ eval "echo ${VAL}"
-+}
-+
- compilerSupportsFlag()
- {
- cat >conftest.cpp <<EOF
-@@ -578,24 +598,14 @@ fi
- # initalize variables
- #-------------------------------------------------------------------------------
-
--SYSTEM_VARIABLES="AR RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
--for varname in $SYSTEM_VARIABLES; do
-+# Export all OE variables for qmake.conf from shell env to QMakeVars
-+OE_VARIABLES="AR CC CFLAGS COMPILER CXX CXXFLAGS LDFLAGS LINK QT_CONFIG STRIP"
-+for varname in $OE_VARIABLES; do
- qmakevarname="${varname}"
-- qmakecmdargs=""
-- # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
-- if [ "${varname}" = "LDFLAGS" ]; then
-- qmakevarname="LFLAGS"
-- elif [ "${varname}" = "LD" ]; then
-- qmakevarname="LINK"
-- elif [ "${varname}" = "AR" ]; then
-- # QMAKE_AR needs to be set to "/path/to/ar cqs" but the
-- # environment variable will be set to the command only so we
-- # need to append " cqs" for autoconf compatibility
-- qmakecmdargs=" cqs"
-- fi
- cmd=`echo \
--'if [ -n "\$'${varname}'" ]; then
-- QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}${qmakecmdargs}'"
-+'if [ -n "\$OE_QMAKE_'${varname}'" ]; then
-+ QMakeVar set OE_QMAKE_'${qmakevarname}' "\$OE_QMAKE_'${varname}'"
-+# echo "Exporting OE_QMAKE_'${qmakevarname}' value=\"\$OE_QMAKE_'${varname}'\"" >&2
- fi'`
- eval "$cmd"
- done
-@@ -3443,7 +3453,7 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
- [ "$CFG_GTK" = "auto" ] && CFG_GTK=no
- fi
-
--QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
-+QMAKE_CONF_COMPILER=`getXQEvalMakeConf QMAKE_CXX`
-
- TEST_COMPILER=$QMAKE_CONF_COMPILER
-
-@@ -3494,7 +3504,7 @@ if [ "$XPLATFORM_ANDROID" = "yes" ] ; then
- fi
- fi
-
--TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
-+TEST_COMPILER_CXXFLAGS=`getXQEvalMakeConf QMAKE_CXXFLAGS`
-
- GCC_MACHINE_DUMP=
- case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
-@@ -3893,6 +3903,14 @@ setBootstrapVariable()
- getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
+- getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
++ getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
}
-+# OE qmake.conf is reading some variables from shell env
-+# read them from qmake.conf, replace qmake () syntax with shell and eval
-+setBootstrapEvalVariable()
-+{
-+ getQEvalMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
-+}
-+
-+
# build qmake
- if true; then ###[ '!' -f "$outpath/bin/qmake" ];
- echo "Creating qmake..."
-@@ -3986,6 +4004,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
- EXEEXT=
- ;;
- esac
-+ [ "$QT_CROSS_COMPILE" = "yes" ] && EXEEXT=-target
- if [ "$BUILD_ON_MAC" = "yes" ]; then
- echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile"
- echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
-index a890c7f..151630c 100644
+index f275e3a..5aa15f5 100644
--- a/mkspecs/features/configure.prf
+++ b/mkspecs/features/configure.prf
-@@ -71,14 +71,14 @@ defineTest(qtCompileTest) {
+@@ -37,14 +37,14 @@ defineTest(qtCompileTest) {
}
# Clean up after previous run
- exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
+ exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
- mkpath($$test_out_dir)|error("Aborting.")
+ mkpath($$test_out_dir)|error()
!isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF
@@ -186,157 +63,72 @@ index a890c7f..151630c 100644
log("yes$$escape_expand(\\n)")
msg = "test $$1 succeeded"
write_file($$QMAKE_CONFIG_LOG, msg, append)
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 708815d..097ac49 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -67,7 +67,7 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+ cmd = $$eval(QT_TOOL.$${2}.binary)
+ isEmpty(cmd) {
+- cmd = $$[QT_HOST_BINS]/$$2
++ cmd = $$[QT_HOST_BINS/get]/$$2
+ exists($${cmd}.pl) {
+ $${1}_EXE = $${cmd}.pl
+ cmd = perl -w $$system_path($${cmd}.pl)
diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
new file mode 100644
-index 0000000..311ba04
+index 0000000..c1837e6
--- /dev/null
+++ b/mkspecs/linux-oe-g++/qmake.conf
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,43 @@
+#
+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
+#
+
-+MAKEFILE_GENERATOR = UNIX
++MAKEFILE_GENERATOR = UNIX
+CONFIG += incremental
+QMAKE_INCREMENTAL_STYLE = sublib
+
+include(../common/linux.conf)
+
+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
-+QMAKE_AR = $(OE_QMAKE_AR) cqs
-+QMAKE_STRIP = $(OE_QMAKE_STRIP)
-+QMAKE_WAYLAND_SCANNER = $(OE_QMAKE_WAYLAND_SCANNER)
++QMAKE_AR = $$(OE_QMAKE_AR) cqs
++QMAKE_STRIP = $$(OE_QMAKE_STRIP)
++QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER)
+
+include(../common/gcc-base-unix.conf)
+
+# *FLAGS from gcc-base.conf
-+QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
-+QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
-+QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
++QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
++QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
++QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
+
+include(../common/g++-unix.conf)
+
+# tc settings from g++-base.conf
-+QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc
-+QMAKE_CC = $(OE_QMAKE_CC)
-+QMAKE_CXX = $(OE_QMAKE_CXX)
++QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) gcc
++QMAKE_CC = $$(OE_QMAKE_CC)
++QMAKE_CXX = $$(OE_QMAKE_CXX)
+
-+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS)
+
-+QMAKE_LINK = $(OE_QMAKE_LINK)
-+QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
-+QMAKE_LINK_C = $(OE_QMAKE_LINK)
-+QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
++QMAKE_LINK = $$(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
+
+# for the SDK
-+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
+
+include(../oe-device-extra.pri)
+
++load(device_config)
+load(qt_config)
diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
new file mode 100644
-index 0000000..dd12003
+index 0000000..5d22fb4
--- /dev/null
+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
-@@ -0,0 +1,100 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the qmake spec of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia. For licensing terms and
-+** conditions see http://qt.digia.com/licensing. For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights. These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file. Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QPLATFORMDEFS_H
-+#define QPLATFORMDEFS_H
-+
-+// Get Qt defines/settings
-+
-+#include "qglobal.h"
-+
-+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
-+
-+// 1) need to reset default environment if _BSD_SOURCE is defined
-+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0
-+// 3) it seems older glibc need this to include the X/Open stuff
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE
-+#endif
-+
-+#include <unistd.h>
-+
-+
-+// We are hot - unistd.h should have turned on the specific APIs we requested
-+
-+#include <features.h>
-+#include <pthread.h>
-+#include <dirent.h>
-+#include <fcntl.h>
-+#include <grp.h>
-+#include <pwd.h>
-+#include <signal.h>
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/ipc.h>
-+#include <sys/time.h>
-+#include <sys/shm.h>
-+#include <sys/socket.h>
-+#include <sys/stat.h>
-+#include <sys/wait.h>
-+#include <netinet/in.h>
-+#ifndef QT_NO_IPV6IFNAME
-+#include <net/if.h>
-+#endif
-+
-+#define QT_USE_XOPEN_LFS_EXTENSIONS
-+#include "../common/posix/qplatformdefs.h"
-+
-+#undef QT_SOCKLEN_T
-+
-+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-+#define QT_SOCKLEN_T socklen_t
-+#else
-+#define QT_SOCKLEN_T int
-+#endif
-+
-+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
-+#define QT_SNPRINTF ::snprintf
-+#define QT_VSNPRINTF ::vsnprintf
-+#endif
-+
-+#endif // QPLATFORMDEFS_H
+@@ -0,0 +1 @@
++#include "../linux-g++/qplatformdefs.h"