diff options
-rw-r--r-- | classes/qmake5_base.bbclass | 2 | ||||
-rw-r--r-- | conf/layer.conf | 9 | ||||
-rw-r--r-- | recipes-qt/examples/qt5everywheredemo_1.0.bb | 2 | ||||
-rw-r--r-- | recipes-qt/qt5/qt5-creator_3.5.1.bb | 6 | ||||
-rw-r--r-- | recipes-qt/qt5/qtdeclarative_git.bb | 4 | ||||
-rw-r--r-- | recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch | 103 | ||||
-rw-r--r-- | recipes-qt/qt5/qtmultimedia_git.bb | 1 | ||||
-rw-r--r-- | recipes-qt/qt5/qtwayland/0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch | 117 | ||||
-rw-r--r-- | recipes-qt/qt5/qtwayland_git.bb | 5 | ||||
-rw-r--r-- | recipes-qt/qt5/qtwebengine_git.bb | 1 |
10 files changed, 242 insertions, 8 deletions
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass index fa1bc563..3da8e655 100644 --- a/classes/qmake5_base.bbclass +++ b/classes/qmake5_base.bbclass @@ -30,7 +30,7 @@ EXTRA_OEMAKE = " \ OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \ " -OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" +OE_QMAKE_QMAKE = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake" export OE_QMAKE_COMPILER = "${CC}" export OE_QMAKE_CC = "${CC}" export OE_QMAKE_CFLAGS = "${CFLAGS}" diff --git a/conf/layer.conf b/conf/layer.conf index b7207e63..7eb3b2db 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -23,9 +23,16 @@ BBFILE_PATTERN_qt5-layer := "^${LAYERDIR}/" BBFILE_PRIORITY_qt5-layer = "7" +# This should only be incremented on significant changes that will +# cause compatibility issues with other layers +LAYERVERSION_qt5-layer = "1" + +LAYERDEPENDS_qt5-layer = "core" + LICENSE_PATH += "${LAYERDIR}/licenses" IMAGE_FEATURES[validitems] += "qtcreator-debug" -QT_GIT ?= "git://github.com/qtproject" +QT_GIT ?= "git://github.com/qt" +QT_LABS_GIT ?= "git://github.com/qt-labs" QT_GIT_PROTOCOL ?= "git" diff --git a/recipes-qt/examples/qt5everywheredemo_1.0.bb b/recipes-qt/examples/qt5everywheredemo_1.0.bb index ab2bbd4a..7735d902 100644 --- a/recipes-qt/examples/qt5everywheredemo_1.0.bb +++ b/recipes-qt/examples/qt5everywheredemo_1.0.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://main.cpp;md5=1187cb795a0f96bce64e63dd1a67dc2b" DEPENDS = "qtdeclarative qtgraphicaleffects" SRCREV = "c17fe9e0ec0882ac4c4dc1168095f569acab5d09" -SRC_URI = "${QT_GIT}/qt-labs-qt5-everywhere-demo" +SRC_URI = "${QT_LABS_GIT}/qt-labs-qt5-everywhere-demo" S = "${WORKDIR}/git/QtDemo" diff --git a/recipes-qt/qt5/qt5-creator_3.5.1.bb b/recipes-qt/qt5/qt5-creator_3.5.1.bb index 2d8cee9d..f4ba8580 100644 --- a/recipes-qt/qt5/qt5-creator_3.5.1.bb +++ b/recipes-qt/qt5/qt5-creator_3.5.1.bb @@ -32,8 +32,8 @@ EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME}" do_configure_append() { # Find native tools - sed -i 's:${STAGING_BINDIR}.*/lrelease:${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/lrelease:g' ${B}/share/qtcreator/translations/Makefile - sed -i 's:${STAGING_BINDIR}.*/qdoc:${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qdoc:g' ${B}/Makefile + sed -i 's:${STAGING_BINDIR}.*/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile + sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile # see qtbase-native.inc # sed -i 's:QT_INSTALL_DOCS=${docdir}:QT_INSTALL_DOCS=${STAGING_DATADIR_NATIVE}${QT_DIR_NAME}/doc:g' ${B}/Makefile @@ -50,7 +50,7 @@ do_install() { # install desktop and ensure that qt-creator finds qmake install -d ${D}${datadir}/applications install -m 0644 ${WORKDIR}/qtcreator.desktop.in ${D}${datadir}/applications/qtcreator.desktop - sed -i 's:@QT5_QMAKE@:${bindir}${QT_DIR_NAME}:g' ${D}${datadir}/applications/qtcreator.desktop + sed -i 's:@QT5_QMAKE@:${OE_QMAKE_PATH_QT_BINS}:g' ${D}${datadir}/applications/qtcreator.desktop } FILES_${PN} += " \ diff --git a/recipes-qt/qt5/qtdeclarative_git.bb b/recipes-qt/qt5/qtdeclarative_git.bb index c1d6b77f..6912ea87 100644 --- a/recipes-qt/qt5/qtdeclarative_git.bb +++ b/recipes-qt/qt5/qtdeclarative_git.bb @@ -21,7 +21,7 @@ SRC_URI += " \ file://0002-qquickviewcomparison-fix-QCoreApplication-has-not-be.patch \ " -EXTRA_OEMAKE += "QMAKE_SYNCQT=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt" +EXTRA_OEMAKE += "QMAKE_SYNCQT=${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/syncqt" PACKAGECONFIG ??= "qtxmlpatterns" PACKAGECONFIG[qtxmlpatterns] = ",,qtxmlpatterns" @@ -32,7 +32,7 @@ do_configure_prepend() { sed -e 's/^\(!qtHaveModule(xmlpatterns)\)/!OE_QTXMLPATTERNS_ENABLED|\1/' -i ${S}/tests/auto/quick/quick.pro #set the path for syncqt properly - echo "QT_TOOL.syncqt.binary = \"${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt\"" > ${B}/.qmake.cache + echo "QT_TOOL.syncqt.binary = \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/syncqt\"" > ${B}/.qmake.cache } do_install_append_class-nativesdk() { diff --git a/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch b/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch new file mode 100644 index 00000000..8547f72a --- /dev/null +++ b/recipes-qt/qt5/qtmultimedia/0001-qtmultimedia-fix-a-conflicting-declaration.patch @@ -0,0 +1,103 @@ +From 849355a1c59d76fa39dc93b537458a084190fa45 Mon Sep 17 00:00:00 2001 +From: Wenlin Kang <wenlin.kang@windriver.com> +Date: Thu, 8 Sep 2016 12:18:13 +0800 +Subject: [PATCH] qtmultimedia: fix a conflicting declaration + +Use lgl2.h instead of gl2.h and gl2ext.h, +fix a "conflicting declaration" error. + +Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +--- + src/plugins/videonode/imx6/lgl2.h | 46 ++++++++++++++++++++++ + .../videonode/imx6/qsgvivantevideomaterial.cpp | 5 ++- + src/plugins/videonode/imx6/qsgvivantevideonode.cpp | 5 ++- + 3 files changed, 52 insertions(+), 4 deletions(-) + create mode 100644 src/plugins/videonode/imx6/lgl2.h + +diff --git a/src/plugins/videonode/imx6/lgl2.h b/src/plugins/videonode/imx6/lgl2.h +new file mode 100644 +index 0000000..2423697 +--- /dev/null ++++ b/src/plugins/videonode/imx6/lgl2.h +@@ -0,0 +1,46 @@ ++#ifndef __L_GL2_H__ ++#define __L_GL2_H__ ++ ++// this file comes from <GLES2/gl2.h> and <GLES2/gl2ext.h>, ++// it's a light gl2.h. ++ ++/*------------------------------------------------------------------------- ++ * Definition of KHRONOS_APIENTRY ++ *------------------------------------------------------------------------- ++ * This follows the return type of the function and precedes the function ++ * name in the function prototype. ++ */ ++#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) ++ /* Win32 but not WinCE */ ++# define KHRONOS_APIENTRY __stdcall ++#else ++# define KHRONOS_APIENTRY ++#endif ++ ++#ifndef GL_APIENTRY ++# define GL_APIENTRY KHRONOS_APIENTRY ++#endif ++ ++#ifndef GL_APIENTRYP ++# define GL_APIENTRYP GL_APIENTRY* ++#endif ++ ++typedef void GLvoid; ++typedef unsigned int GLenum; ++typedef unsigned int GLuint; ++typedef int GLsizei; ++ ++#define GL_VIV_YV12 0x8FC0 ++#define GL_VIV_NV12 0x8FC1 ++#define GL_VIV_YUY2 0x8FC2 ++#define GL_VIV_UYVY 0x8FC3 ++#define GL_VIV_NV21 0x8FC4 ++#define GL_VIV_I420 0x8FC5 ++ ++typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVMAPPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); ++typedef void (GL_APIENTRYP PFNGLTEXDIRECTMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); ++typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Pixels); ++typedef void (GL_APIENTRYP PFNGLTEXDIRECTINVALIDATEVIVPROC) (GLenum Target); ++typedef void (GL_APIENTRYP PFNGLTEXDIRECTTILEDMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); ++ ++#endif +diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp +index 2e2092b..54568db 100644 +--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp ++++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp +@@ -31,8 +31,9 @@ + ** + ****************************************************************************/ + +-#include <GLES2/gl2.h> +-#include <GLES2/gl2ext.h> ++// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>, ++// fixes a conflicting declaration issue. ++#include "lgl2.h" + + #include "qsgvivantevideomaterial.h" + #include "qsgvivantevideomaterialshader.h" +diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp +index 229a69b..184fd12 100644 +--- a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp ++++ b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp +@@ -31,8 +31,9 @@ + ** + ****************************************************************************/ + +-#include <GLES2/gl2.h> +-#include <GLES2/gl2ext.h> ++// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>, ++// fixes a conflicting declaration issue. ++#include "lgl2.h" + + #include "qsgvivantevideonode.h" + #include "qsgvivantevideomaterialshader.h" +-- +1.9.1 + diff --git a/recipes-qt/qt5/qtmultimedia_git.bb b/recipes-qt/qt5/qtmultimedia_git.bb index e93904ae..4fe2d8e6 100644 --- a/recipes-qt/qt5/qtmultimedia_git.bb +++ b/recipes-qt/qt5/qtmultimedia_git.bb @@ -36,6 +36,7 @@ EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains_any('PACKAGECONFIG', 'gstreamer gst SRC_URI += "\ file://0001-Initial-porting-effort-to-GStreamer-1.0.patch \ + file://0001-qtmultimedia-fix-a-conflicting-declaration.patch \ " SRCREV = "0cb4dc5c1fded81b4f47945b51b8de0b0151bf67" diff --git a/recipes-qt/qt5/qtwayland/0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch b/recipes-qt/qt5/qtwayland/0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch new file mode 100644 index 00000000..982c60c5 --- /dev/null +++ b/recipes-qt/qt5/qtwayland/0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch @@ -0,0 +1,117 @@ +From 4fd9d8ce8289e0b7d5ecf01c7cce89d20d93b0d4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Vesa=20J=C3=A4=C3=A4skel=C3=A4inen?= <dachaac@gmail.com> +Date: Sun, 18 Sep 2016 11:51:59 +0300 +Subject: [PATCH] Fix building of QWaylandIntegration if some Qt5 features are + disabled. + +QPlatformIntegration's interface methods are disabled based on QT_NO_OPENGL, +QT_NO_CLIPBOARD, QT_NO_DRAGANDDROP, QT_NO_ACCESSIBILITY and +QT_NO_SESSIONMANAGER, these has to be taken into account when compiling +QtWayland. +--- + src/client/qwaylandintegration.cpp | 17 ++++++++++++++++- + src/client/qwaylandintegration_p.h | 8 ++++++++ + 2 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp +index 48517fc..9ea8647 100644 +--- a/src/client/qwaylandintegration.cpp ++++ b/src/client/qwaylandintegration.cpp +@@ -45,7 +45,9 @@ + #include "qwaylandinputcontext_p.h" + #include "qwaylandshmbackingstore_p.h" + #include "qwaylandnativeinterface_p.h" ++#ifndef QT_NO_CLIPBOARD + #include "qwaylandclipboard_p.h" ++#endif + #include "qwaylanddnd_p.h" + #include "qwaylandwindowmanagerintegration_p.h" + #include "qwaylandscreen_p.h" +@@ -63,7 +65,9 @@ + #include <QSocketNotifier> + + #include <qpa/qplatforminputcontextfactory_p.h> ++#ifndef QT_NO_ACCESSIBILITY + #include <qpa/qplatformaccessibility.h> ++#endif + #include <qpa/qplatforminputcontext.h> + + #include "qwaylandhardwareintegration_p.h" +@@ -132,9 +136,12 @@ QWaylandIntegration::QWaylandIntegration() + { + initializeInputDeviceIntegration(); + mDisplay = new QWaylandDisplay(this); ++#ifndef QT_NO_CLIPBOARD + mClipboard = new QWaylandClipboard(mDisplay); ++#endif ++#ifndef QT_NO_DRAGANDDROP + mDrag = new QWaylandDrag(mDisplay); +- ++#endif + QString icStr = QPlatformInputContextFactory::requested(); + if (!icStr.isNull()) { + mInputContext.reset(QPlatformInputContextFactory::create(icStr)); +@@ -153,8 +160,12 @@ QWaylandIntegration::QWaylandIntegration() + + QWaylandIntegration::~QWaylandIntegration() + { ++#ifndef QT_NO_DRAGANDDROP + delete mDrag; ++#endif ++#ifndef QT_NO_CLIPBOARD + delete mClipboard; ++#endif + #ifndef QT_NO_ACCESSIBILITY + delete mAccessibility; + #endif +@@ -230,15 +241,19 @@ QPlatformFontDatabase *QWaylandIntegration::fontDatabase() const + return mFontDb; + } + ++#ifndef QT_NO_CLIPBOARD + QPlatformClipboard *QWaylandIntegration::clipboard() const + { + return mClipboard; + } ++#endif + ++#ifndef QT_NO_DRAGANDDROP + QPlatformDrag *QWaylandIntegration::drag() const + { + return mDrag; + } ++#endif + + QPlatformInputContext *QWaylandIntegration::inputContext() const + { +diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h +index 9a49902..082e0c8 100644 +--- a/src/client/qwaylandintegration_p.h ++++ b/src/client/qwaylandintegration_p.h +@@ -86,9 +86,13 @@ public: + + QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE; + ++#ifndef QT_NO_CLIPBOARD + QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE; ++#endif + ++#ifndef QT_NO_DRAGANDDROP + QPlatformDrag *drag() const Q_DECL_OVERRIDE; ++#endif + + QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE; + +@@ -126,8 +130,12 @@ private: + QWaylandShellIntegration *createShellIntegration(const QString& interfaceName); + + QPlatformFontDatabase *mFontDb; ++#ifndef QT_NO_CLIPBOARD + QPlatformClipboard *mClipboard; ++#endif ++#ifndef QT_NO_DRAGANDDROP + QPlatformDrag *mDrag; ++#endif + QWaylandDisplay *mDisplay; + QPlatformNativeInterface *mNativeInterface; + QScopedPointer<QPlatformInputContext> mInputContext; diff --git a/recipes-qt/qt5/qtwayland_git.bb b/recipes-qt/qt5/qtwayland_git.bb index c2931257..c64a92f1 100644 --- a/recipes-qt/qt5/qtwayland_git.bb +++ b/recipes-qt/qt5/qtwayland_git.bb @@ -15,6 +15,7 @@ LIC_FILES_CHKSUM = " \ file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ " + #FIXME: xkb should be optional; we add it here to fix the build error without it # (https://bugreports.qt.io/browse/QTBUG-54851) PACKAGECONFIG ?= " \ @@ -41,6 +42,10 @@ PACKAGECONFIG[libhybris-egl] = "CONFIG+=config_libhybris_egl_server CONFIG+=done EXTRA_QMAKEVARS_PRE += "${PACKAGECONFIG_CONFARGS}" +SRC_URI += " \ + file://0001-Fix-building-of-QWaylandIntegration-if-some-Qt5-feat.patch \ +" + SRCREV = "3443483c9efdcfbfe049f96c83f83a5bf1d81e61" BBCLASSEXTEND =+ "native nativesdk" diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index 24f94d56..4152ef0a 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -19,6 +19,7 @@ DEPENDS += " \ qtlocation \ libdrm fontconfig pixman openssl pango cairo icu pciutils \ libcap \ + gperf-native \ " # when qtbase is built with xcb enabled (default with x11 in DISTRO_FEATURES), |