recipes-qt: add recipes from meta-fsl-bsp-release

These recipes update Qt5, its plugins and adds wayland support.

https://jira.digi.com/browse/DEL-6104

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
Gabriel Valcazar 2018-08-10 17:36:21 +02:00
parent c82ee2be42
commit 081551aeeb
23 changed files with 380 additions and 0 deletions

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"

View File

@ -0,0 +1,28 @@
From 66389744b6f521880679433fd3ea6ed072eef9a3 Mon Sep 17 00:00:00 2001
From: Yuqing Zhu <carol.zhu@nxp.com>
Date: Wed, 26 Jul 2017 11:29:41 +0800
Subject: [PATCH] configure.ac: Add prefix to correct the QT_PATH
Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com>
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index fa26262..b35a828 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2919,8 +2919,8 @@ dnl *** Qt ***
translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
- QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
- QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
+ QT_PATH=$STAGING_DIR`$PKG_CONFIG --variable=exec_prefix Qt5Core`
+ QT_HOST_PATH=$STAGING_DIR`$PKG_CONFIG --variable=host_bins Qt5Core`
AC_ARG_WITH([moc],
AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
[MOC=$withval])
--
1.9.1

View File

@ -0,0 +1,64 @@
require recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
FILESEXTRAPATHS_prepend := "${BSPDIR}/sources/meta-fsl-bsp-release/imx/meta-sdk/recipes-qt5/qt5/${PN}:"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https"
SRCBRANCH = "MM_04.04.00_1805_L4.9.88_MX8QXP_BETA2"
SRC_URI = " \
${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \
file://0001-configure.ac-Add-prefix-to-correct-the-QT_PATH.patch \
"
SRCREV = "037e2bf9a152de410623235974c68be21948985a"
# gstgldisplay_viv_fb.h from gst-base is needed by qmlgl plugin
DEPENDS_append = " gstreamer1.0-plugins-base"
# Need libdrm_fourcc.h for DMA buf support in opengl plugins
DEPENDS_append_mx7ulp = " libdrm"
DEPENDS_append_mx8 = " libdrm"
# Qt5 configuratin only support "--disable-qt"
# And in default, it is disabled, need to remove the default setting to enable it.
# Fix: unrecognised options: --disable-sunaudio [unknown-configure-option]
EXTRA_OECONF_remove = "--disable-qt \
--disable-sdl --disable-nas --disable-libvisual --disable-xvid --disable-mimic \
--disable-pvr --disable-sdltest --disable-wininet --disable-timidity \
--disable-linsys --disable-sndio --disable-apexsink \
--disable-sunaudio \
"
# The QT_PATH & QT_HOST_PATH which help to access to moc uic rcc tools are incorrect,
# need to passing STAGING_DIR to update the QT PATH
EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE} --disable-introspection"
PACKAGECONFIG += "qt5"
PACKAGECONFIG[qt5] = '--enable-qt \
--with-moc="${STAGING_DIR_NATIVE}/usr/bin/qt5/moc" \
--with-uic="${STAGING_DIR_NATIVE}/usr/bin/qt5/uic" \
--with-rcc="${STAGING_DIR_NATIVE}/usr/bin/qt5/rcc" \
,--disable-qt,qtbase qtdeclarative qtbase-native'
# This remove "--exclude=autopoint" option from autoreconf argument to avoid
# configure.ac:30: error: required file './ABOUT-NLS' not found
EXTRA_AUTORECONF = ""
# remove the duplicate libs except qtsink
do_install_append() {
rm -rf ${D}/usr
if [ -e ${WORKDIR}/build/ext/qt/.libs/libgstqmlgl.so ]; then
mkdir -p ${D}${libdir}/gstreamer-1.0/
install -m 0755 ${WORKDIR}/build/ext/qt/.libs/libgstqmlgl.so ${D}${libdir}/gstreamer-1.0/
install -m 0755 ${WORKDIR}/build/ext/qt/.libs/libgstqmlgl.lai ${D}${libdir}/gstreamer-1.0/libgstqmlgl.la
fi
}
PV = "1.14.0.imx"
S = "${WORKDIR}/git"
# Need qtsink for SoCs that have hardware GPU3D
COMPATIBLE_MACHINE = "(mx6sx|mx6dl|mx6q|mx7ulp|mx8)"

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=iMX Camera
Exec=/usr/share/qt5/examples/multimedia/imxcamera/imxcamera
Icon=imxcamera
Terminal=false
Type=Application
X-MB-SingleInstance=true
Comment=i.MX Camera App
StartupNotify=false

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=iMX Player
Exec=/usr/share/qt5/examples/multimedia/imxplayer/imxplayer
Icon=imxplayer
Terminal=false
Type=Application
X-MB-SingleInstance=true
Comment=i.MX Player
StartupNotify=false

View File

@ -0,0 +1,58 @@
# Copyright (C) 2014-2016 Freescale Semiconductor
# Copyright 2017 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Freescale QT Multimedia applications"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=6b552f505eedab4a11ab538cf3db743a"
inherit fsl-eula-unpack pkgconfig
# base on QtMultimedia v5.2.1
DEPENDS += "qtmultimedia gstreamer1.0 gstreamer1.0-plugins-base imx-gst1.0-plugin qtquickcontrols"
SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true \
file://qtimxplayer.desktop \
file://qtimxcamera.desktop \
"
SRC_URI[md5sum] = "e65c9a365a4ed76efd4e5de8c3b35293"
SRC_URI[sha256sum] = "4a43cc4ec58827dda287e2f3c4700bfa821c5075ffefa06056a33290ccaede9a"
USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
PLATFORM_HAS_VPU = " "
PLATFORM_HAS_VPU_imxvpu = "yes"
# imx-qtapplications will be enabled on board with GPU 3D
# For now, imxcamera & imxplayer can only be supported on x11 backend for SoC with VPU only (including i.MX6Q & i.MX6DL)
# And test_qmlglsrc & test_qmlglsink can be supported on all backends
do_install () {
if [ "${USE_X11}" = "yes" ]; then
if [ "${PLATFORM_HAS_VPU}" = "yes" ]; then
install -d ${D}${datadir}/applications
install -m 0644 ${WORKDIR}/qt*.desktop ${D}${datadir}/applications
install -d ${D}${datadir}/qt5
cp -r ${S}/usr/share/qt5/examples ${D}${datadir}/qt5
install -d ${D}${datadir}/pixmaps
cp -r ${S}/usr/share/pixmaps/* ${D}${datadir}/pixmaps
else
install -d ${D}${datadir}/qt5/examples/multimedia/
cp -r ${S}/usr/share/qt5/examples/multimedia/qmlgltest/ ${D}${datadir}/qt5/examples/multimedia/
fi
else
install -d ${D}${datadir}/qt5/examples/multimedia/
cp -r ${S}/usr/share/qt5/examples/multimedia/qmlgltest/ ${D}${datadir}/qt5/examples/multimedia/
fi
}
FILES_${PN} = " \
${datadir}/qt5/examples/*/* \
${datadir}/applications/* \
${datadir}/pixmaps/* \
"
INSANE_SKIP_${PN} += "debug-files"
COMPATIBLE_MACHINE = "(mx6|mx7ulp)"

View File

@ -0,0 +1,31 @@
# Copyright (C) 2014-2016 Freescale Semiconductor
# Copyright 2017 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Freescale QT Multimedia applications"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=08fd295cce89b0a9c74b9b83ed74f671"
inherit fsl-eula-unpack pkgconfig
# base on QtMultimedia v5.2.1
DEPENDS += "qtmultimedia gstreamer1.0 gstreamer1.0-plugins-base imx-gst1.0-plugin qtquickcontrols"
SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true \
"
SRC_URI[md5sum] = "a4df8c4b998d9de7fde469d20d3cd8b1"
SRC_URI[sha256sum] = "8f64a8d232dc1e3f03873b6702c281750bae9d720e89e414c0104f0ded3d2f84"
do_install () {
install -d ${D}${datadir}/qt5/examples/multimedia/
cp -r ${S}/usr/share/qt5/examples/multimedia/qmlgltest/ ${D}${datadir}/qt5/examples/multimedia/
}
FILES_${PN} = " \
${datadir}/qt5/examples/*/* \
"
INSANE_SKIP_${PN} += "debug-files"
COMPATIBLE_MACHINE = "(mx8)"

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,31 @@
From f407bd40a35153f88b3492814b805e0773e53881 Mon Sep 17 00:00:00 2001
From: Alexandru Palalau <ioan-alexandru.palalau@nxp.com>
Date: Mon, 15 Jan 2018 15:18:41 +0200
Subject: [PATCH] =?UTF-8?q?Fix=20crash=20when=20wl=5Fsurface=20was=20destr?=
=?UTF-8?q?oyed=20before=20eglDestroySurface=20called.=20Upstream=C2=A0Sta?=
=?UTF-8?q?tus:=C2=A0Inappropriate=C2=A0[i.MX=C2=A0specific]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Alexandru Palalau <ioan-alexandru.palalau@nxp.com>
---
src/client/qwaylandwindow.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 6d7c088..94c89a3 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -385,8 +385,6 @@ void QWaylandWindow::setVisible(bool visible)
QWindowSystemInterface::flushWindowSystemEvents();
if (!deleteGuard.isNull() && window()->type() == Qt::Popup)
closePopups(this);
- if (!deleteGuard.isNull())
- reset();
}
}
--
2.7.4

View File

@ -0,0 +1,63 @@
From 9e2f959060d8767f8710e113621c0004f21ace93 Mon Sep 17 00:00:00 2001
From: Yuqing Zhu <carol.zhu@nxp.com>
Date: Fri, 11 May 2018 13:51:55 +0800
Subject: [PATCH] tst_client.cpp: Fix no-opengl build error
The error is introduced by bf09c7a1493c01a65ee0f110b37a04e653edc08e
Upstream-Status: Pending
Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com>
---
tests/auto/client/client/tst_client.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/auto/client/client/tst_client.cpp b/tests/auto/client/client/tst_client.cpp
index 2124205..d63030d 100644
--- a/tests/auto/client/client/tst_client.cpp
+++ b/tests/auto/client/client/tst_client.cpp
@@ -114,6 +114,7 @@ public:
QPoint mousePressPos;
};
+#ifndef QT_NO_OPENGL
class TestGlWindow : public QOpenGLWindow
{
Q_OBJECT
@@ -132,6 +133,7 @@ void TestGlWindow::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
}
+#endif // QT_NO_OPENGL
class tst_WaylandClient : public QObject
{
@@ -170,7 +172,9 @@ private slots:
void dontCrashOnMultipleCommits();
void hiddenTransientParent();
void hiddenPopupParent();
+#ifndef QT_NO_OPENGL
void glWindow();
+#endif // QT_NO_OPENGL
private:
MockCompositor *compositor;
@@ -433,6 +437,7 @@ void tst_WaylandClient::hiddenPopupParent()
QTRY_VERIFY(compositor->surface());
}
+#ifndef QT_NO_OPENGL
void tst_WaylandClient::glWindow()
{
QSKIP("Skipping GL tests, as not supported by all CI systems: See https://bugreports.qt.io/browse/QTBUG-65802");
@@ -447,6 +452,7 @@ void tst_WaylandClient::glWindow()
testWindow->setVisible(false);
QTRY_VERIFY(!compositor->surface());
}
+#endif // QT_NO_OPENGL
int main(int argc, char **argv)
{
--
1.9.1

View File

@ -0,0 +1,15 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append = " file://0001-Fix-crash-when-wl_surface-was-destroyed-before-eglDe.patch \
file://0001-tst_client.cpp-Fix-no-opengl-build.patch \
"
PACKAGECONFIG_remove_mx6 = "xcomposite-egl xcomposite-glx"
PACKAGECONFIG_remove_mx6sl = "wayland-egl"
PACKAGECONFIG_remove_mx7 = "xcomposite-egl xcomposite-glx"
PACKAGECONFIG_remove_mx8 = "xcomposite-egl xcomposite-glx"
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,6 @@
do_install_append() {
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"

View File

@ -0,0 +1,4 @@
# Remove dependency on qtgraphicaleffects for sololite
DEPENDS_remove_mx6sl = "qtgraphicaleffects"
RDEPENDS_${PN}_remove_mx6sl = "qtgraphicaleffects-qmlplugins"