qt5wayland: add fix from upstream to compile without QtQuick
PATCH v2 1/1 qt5wayland: add fix from upstream to compile without QtQuick
Compiling qt5wayland fails if you do not have the QtQuick module:
==.obj/qwaylandquickhardwarelayer.o: In function `QWaylandQuickHardwareLayer::classBegin()':
qwaylandquickhardwarelayer.cpp:(.text+0x170): undefined reference to `QWaylandQuickItem::staticMetaObject'.obj/qwaylandquickhardwarelayer.o: In function `non-virtual thunk to QWaylandQuickHardwareLayer::classBegin()':
qwaylandquickhardwarelayer.cpp:(.text+0x1cc): undefined reference to `QWaylandQuickItem::staticMetaObject'.obj/qwaylandquickhardwarelayer.o: In function `QWaylandQuickHardwareLayer::disableSceneGraphPainting()':
qwaylandquickhardwarelayer.cpp:(.text+0x1e0): undefined reference to QWaylandQuickItem::setPaintEnabled(bool)' .obj/qwaylandquickhardwarelayer.o: In function QWaylandQuickHardwareLayerPrivate::layerIntegration()':
qwaylandquickhardwarelayer.cpp:(.text+0x22c): undefined reference to QtWayland::HardwareLayerIntegrationFactory::keys(QString const&)' qwaylandquickhardwarelayer.cpp:(.text+0x408): undefined reference to QtWayland::HardwareLayerIntegrationFactory::create(QString const&, QStringList const&, QString const&)' qwaylandquickhardwarelayer.cpp:(.text+0x890): undefined reference to `QtWayland::HardwareLayerIntegrationFactory::create(QString const&, QStringList const&, QString const&)'
collect2: error: ld returned 1 exit status
Makefile:375: recipe for target '../../lib/libQt5WaylandCompositor.so.5.11.1' failed
make[4]: *** [../../lib/libQt5WaylandCompositor.so.5.11.1] Error 1
==
Fix taken from upstream's git:
http://code.qt.io/cgit/qt/qtwayland.git/commit/?id=2c48ee65e8c3b894caec214641723d0777fc60b8
No longer depends on declarative after applying either.
---
v1 -> v2:
- do add dependency in .mk if quick is enabled, so it is build first.
--- .../0001-fix-compilation-without-QtQuick.patch | 68 ++++++++++++++++++++++ package/qt5/qt5wayland/Config.in | 2 - package/qt5/qt5wayland/qt5wayland.mk | 6 +- 3 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch
package/qt5/qt5wayland/0001-fix-compilation-without-QtQuick.patch new file +68 -0
@@ -0,0 +1,68 @@ +From 2c48ee65e8c3b894caec214641723d0777fc60b8 Mon Sep 17 00:00:00 2001 +From: Alexander Schlarb <[email protected]> +Date: Sun, 29 Jul 2018 21:27:28 +0200 +Subject: Fix compilation of QtWayland without QtQuick + +Change-Id: I0baf542f89274f48bf7d02121a07d64f0f3a001b +Reviewed-by: Johan Helsing <[email protected]> +--- + src/compositor/compositor_api/compositor_api.pri | 10 +++++----- + .../hardware_integration/qwlhardwarelayerintegration_p.h | 1 - + 2 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/src/compositor/compositor_api/compositor_api.pri b/src/compositor/compositor_api/compositor_api.pri +index e5df0f1f..4a0c0aa6 100644 +--- a/src/compositor/compositor_api/compositor_api.pri ++++ b/src/compositor/compositor_api/compositor_api.pri +@@ -27,7 +27,6 @@ HEADERS += \ + compositor_api/qwaylandresource.h \ + compositor_api/qwaylandsurfacegrabber.h \ + compositor_api/qwaylandoutputmode_p.h \ +- compositor_api/qwaylandquickhardwarelayer_p.h \ + + SOURCES += \ + compositor_api/qwaylandcompositor.cpp \ +@@ -44,8 +43,7 @@ SOURCES += \ + compositor_api/qwaylanddestroylistener.cpp \ + compositor_api/qwaylandview.cpp \ + compositor_api/qwaylandresource.cpp \ +- compositor_api/qwaylandsurfacegrabber.cpp \ +- compositor_api/qwaylandquickhardwarelayer.cpp ++ compositor_api/qwaylandsurfacegrabber.cpp + + qtConfig(im) { + HEADERS += \ +@@ -71,14 +69,16 @@ qtHaveModule(quick):qtConfig(opengl) { + compositor_api/qwaylandquickcompositor.cpp \ + compositor_api/qwaylandquicksurface.cpp \ + compositor_api/qwaylandquickoutput.cpp \ +- compositor_api/qwaylandquickitem.cpp ++ compositor_api/qwaylandquickitem.cpp \ ++ compositor_api/qwaylandquickhardwarelayer.cpp + + HEADERS += \ + compositor_api/qwaylandquickcompositor.h \ + compositor_api/qwaylandquicksurface.h \ + compositor_api/qwaylandquickoutput.h \ + compositor_api/qwaylandquickitem.h \ +- compositor_api/qwaylandquickitem_p.h ++ compositor_api/qwaylandquickitem_p.h \ ++ compositor_api/qwaylandquickhardwarelayer_p.h + + QT += qml qml-private quick quick-private + } +diff --git a/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h b/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h +index 02de8e8b..1e5fb1a1 100644 +--- a/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h ++++ b/src/compositor/hardware_integration/qwlhardwarelayerintegration_p.h +@@ -54,7 +54,6 @@ + #include <QtWaylandCompositor/qtwaylandcompositorglobal.h> + + #include <QObject> +-#include <QQmlParserStatus> + + QT_BEGIN_NAMESPACE + +-- +cgit v1.1-6-g87c4 +
package/qt5/qt5wayland/Config.in +0 -2
@@ -5,8 +5,6 @@ comment "qt5wayland needs an OpenGL-capable backend" config BR2_PACKAGE_QT5WAYLAND bool "qt5wayland" depends on BR2_PACKAGE_QT5_GL_AVAILABLE - depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative - select BR2_PACKAGE_QT5DECLARATIVE select BR2_PACKAGE_WAYLAND help Qt is a cross-platform application and UI framework for
package/qt5/qt5wayland/qt5wayland.mk +5 -1
@@ -7,9 +7,13 @@ QT5WAYLAND_VERSION = $(QT5_VERSION) QT5WAYLAND_SITE = $(QT5_SITE) QT5WAYLAND_SOURCE = qtwayland-$(QT5_SOURCE_TARBALL_PREFIX)-$(QT5WAYLAND_VERSION).tar.xz -QT5WAYLAND_DEPENDENCIES = qt5base qt5declarative wayland +QT5WAYLAND_DEPENDENCIES = qt5base wayland QT5WAYLAND_INSTALL_STAGING = YES +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK),y) +QT5WAYLAND_DEPENDENCIES += qt5declarative +endif + ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y) QT5WAYLAND_DEPENDENCIES += libxkbcommon endif
Signature · 1 line
2.7.4
PATCH v2 1/1 qt5wayland: add fix from upstream to compile without QtQuick
Hello Floris,
package/qt5/qt5wayland/Config.in comment "qt5wayland needs an OpenGL-capable backend"
Quoted 5 lines · Floris Bos
package/qt5/qt5wayland/Config.in +0
-0@@ -5,8 +5,6 @@ comment "qt5wayland needs an OpenGL-capable backend"
You forgot to drop the "depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE" dependency from this comment, which only existed because of the qt5declarative dependency. I've fixed that before applying.
package/qt5/qt5wayland/Config.in comment "qt5wayland needs an OpenGL-capable backend" · line 7
Quoted 3 lines
package/qt5/qt5wayland/Config.in +0
-0config BR2_PACKAGE_QT5WAYLAND bool "qt5wayland" depends on BR2_PACKAGE_QT5_GL_AVAILABLE
Is this OpenGL support dependency needed because of qt5wayland itself, or was it needed only because of the qt5declarative dependency ?
BR2_PACKAGE_WAYLAND doesn't require OpenGL support, so I'm wondering if qt5wayland needs it or not. If it doesn't, could you send a follow-up patch fixing this ?
In the mean time, I've applied your patch to next, after fixing the issue mentioned above regarding the removal of the BR2_PACKAGE_QT5_JSCORE_AVAILABLE dependency.
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com
PATCH v2 1/1 qt5wayland: add fix from upstream to compile without QtQuick
Hi,
Quoted 9 lines · Thomas Petazzoni
config
BR2_PACKAGE_QT5WAYLANDQuoted 2 lines
bool "qt5wayland"
depends onBR2_PACKAGE_QT5_GL_AVAILABLEIs this OpenGL support dependency needed because of qt5wayland itself, or was it needed only because of the qt5declarative dependency ?
BR2_PACKAGE_WAYLANDdoesn't require OpenGL support, so I'm wondering if qt5wayland needs it or not. If it doesn't, could you send a follow-up patch fixing this ?
It currently does not compile without OpenGL.
But I was also wondering whether or not that was meant to be as well. So had already opened an issue upstream:
https://bugreports.qt.io/browse/QTBUG-69779
Would indeed be nice if it was possible to do without OpenGL, as then we could finally port some old Qt 4 QWS applications to Qt 5.
Thanks for the merge.
Yours sincerely,
Floris Bos
PATCH v2 1/1 qt5wayland: add fix from upstream to compile without QtQuick
Hello,
Quoted 5 lines · Floris Bos
Quoted 3 lines
BR2_PACKAGE_WAYLANDdoesn't require OpenGL support, so I'm wondering if qt5wayland needs it or not. If it doesn't, could you send a follow-up patch fixing this ?It currently does not compile without OpenGL.
OK.
Quoted 6 lines
But I was also wondering whether or not that was meant to be as well. So had already opened an issue upstream:
https://bugreports.qt.io/browse/QTBUG-69779Would indeed be nice if it was possible to do without OpenGL, as then we could finally port some old Qt 4 QWS applications to Qt 5.
Sure. Thanks for the confirmation!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com