meta-digi-dey: copy QT6 recipes into dynamic layers

Mostly a verbatim copy of the recipes in 'meta-imx' as of release
rel_imx_5.15.71_2.2.0, with a couple of changes:

* packagegroup-qt6-imx.bb renamed to packagegroup-qt6-dey.bb
* removed 'nxp-demo-experience' from packagegroup-qt6-dey.bb as the recipe
  lives in a different layer 'meta-nxp-demo-experience' which we currently
  don't clone under DEY.

https://onedigi.atlassian.net/browse/DEL-8347

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2023-02-01 12:00:35 +01:00
parent 14e504344f
commit d8817e9f46
18 changed files with 293 additions and 0 deletions

View File

@ -0,0 +1,21 @@
# Copyright (C) 2014 Freescale Semiconductor
# Copyright 2017-2018, 2020 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Package group for Qt6 demos"
LICENSE = "MIT"
inherit packagegroup
RDEPENDS:${PN}:append = " \
qtbase-examples \
qtdeclarative-examples \
"
RDEPENDS:${PN}:append:imxgpu = " \
cinematicexperience-rhi \
"
RDEPENDS:${PN}:append:imxgpu3d = " \
qt3d-examples \
"

View File

@ -0,0 +1,41 @@
# Copyright 2019-20 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Package group for i.MX Qt6"
LICENSE = "MIT"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
inherit packagegroup
# Install Freescale QT demo applications
QT6_IMAGE_INSTALL_APPS = ""
#QT6_IMAGE_INSTALL_APPS:imxgpu3d = "${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-qtapplications", "", d)}"
# Install fonts
QT6_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "
# Install qtquick3d
QT6_QTQUICK3D = "qtquick3d qtquick3d-dev qtquick3d-examples"
QT6_IMAGE_INSTALL = ""
QT6_IMAGE_INSTALL_common = " \
packagegroup-qt6-demos \
${QT6_QTQUICK3D} \
${QT6_FONTS} \
${QT6_IMAGE_INSTALL_APPS} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxkbcommon', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-plugins', '', d)}\
"
QT6_IMAGE_INSTALL:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT6_IMAGE_INSTALL_common}', \
'qtbase qtbase-plugins', d)}"
QT6_IMAGE_INSTALL:imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT6_IMAGE_INSTALL_common}', \
'qtbase qtbase-examples qtbase-plugins', d)}"
QT6_IMAGE_INSTALL:imxgpu3d = " \
${QT6_IMAGE_INSTALL_common} \
"
RDEPENDS:${PN} += " \
${QT6_IMAGE_INSTALL} \
"

View File

@ -0,0 +1,14 @@
# Copyright (C) 2015 Freescale Semiconductor
# Copyright 2017-2018, 2020-2021 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Package group for Qt6 webengine and examples"
LICENSE = "MIT"
inherit packagegroup
RDEPENDS:${PN} += " \
qtwebengine \
qtwebengine-qmlplugins \
qtwebengine-examples \
"

View File

@ -0,0 +1,34 @@
SUMMARY = "Qt6 technology demo"
DESCRIPTION = "Cinematic Experience collects many of the new Qt6 QtQuick 2.0 features into the same UX demo application. It uses particles, sprites, path animation, custom shaders etc. features which Qt5 introduces for QML UIs."
HOMEPAGE = "http://quitcoding.com/?page=work#cinex"
LICENSE = "CC-BY-3.0"
LIC_FILES_CHKSUM = "file://README.md;beginline=51;endline=62;md5=095fed4655dd7006b7e96051b261b1da"
SRC_URI = "git://github.com/alpqr/qt5-cinematic-experience.git;branch=master;protocol=https"
SRCREV = "fea04d7004a1608308c11189d74bb92d3decbe3d"
S = "${WORKDIR}/git"
inherit qt6-cmake
DEPENDS = "qtdeclarative qtdeclarative-native qtshadertools-native"
RDEPENDS:${PN} = "liberation-fonts qtdeclarative-qmlplugins"
require recipes-qt/qt6/qt6.inc
do_install() {
install -d ${D}${datadir}/${P}
install -m 0755 ${B}/qt5-cinematic-experience ${D}${datadir}/${P}/qt6-cinematic-experience
cp -R --no-dereference --preserve=mode,links ${S}/content ${D}${datadir}/${P}
install -m 0644 ${S}/main.qml ${D}${datadir}/${P}
install -d ${D}${bindir}
echo "#!/bin/sh" > ${D}${bindir}/qt6-cinematic-experience
echo "export QML_IMPORT_PATH=${datadir}/${P}" >> ${D}${bindir}/qt6-cinematic-experience
echo "export QML2_IMPORT_PATH=${datadir}/${P}" >> ${D}${bindir}/qt6-cinematic-experience
echo "${datadir}/${P}/qt6-cinematic-experience \$* " >> ${D}${bindir}/qt6-cinematic-experience
chmod +x ${D}${bindir}/qt6-cinematic-experience
}
FILES:${PN} += "${datadir}"

View File

@ -0,0 +1,7 @@
PACKAGECONFIG += "examples"
do_install:append() {
if ls ${D}${libdir}/pkgconfig/Qt6*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt6*.pc
fi
}

View File

@ -0,0 +1,32 @@
From 3f9703fecd670b36030e1093466f6d11b370c19f Mon Sep 17 00:00:00 2001
From: Yuqing Zhu <carol.zhu@nxp.com>
Date: Mon, 27 Mar 2017 15:33:35 +0800
Subject: [PATCH] egl.prf: Fix build error when egl headers need platform
definition
Gain the value through pkg-config and pass it through QMAKE_CFLAGS_EGL.
Upstream-Status: Pending [https://bugreports.qt.io/browse/QTBUG-61712]
Signed-off-by: Yuqing Zhu <carol.zhu@nxp.com>
---
mkspecs/features/egl.prf | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mkspecs/features/egl.prf b/mkspecs/features/egl.prf
index 9fa0c9e..85d5852 100644
--- a/mkspecs/features/egl.prf
+++ b/mkspecs/features/egl.prf
@@ -1,3 +1,9 @@
+# egl headers need a definition
+PKG_CONFIG = $$pkgConfigExecutable()
+PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags egl)
+PKGCONFIG_CFLAGS = $$find(PKGCONFIG_CFLAGS, ^-D.*)
+QMAKE_CFLAGS_EGL = $$PKGCONFIG_CFLAGS
+
INCLUDEPATH += $$QMAKE_INCDIR_EGL
LIBS_PRIVATE += $$QMAKE_LIBS_EGL
QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL
--
1.9.1

View File

@ -0,0 +1,14 @@
Index: git/mkspecs/linux-oe-g++/qmake.conf
===================================================================
--- git.orig/mkspecs/linux-oe-g++/qmake.conf 2017-06-26 10:20:57.139653321 -0500
+++ git/mkspecs/linux-oe-g++/qmake.conf 2017-06-26 10:30:12.000000000 -0500
@@ -39,5 +39,9 @@
include(../oe-device-extra.pri)
+QMAKE_LIBS_EGL += -lEGL
+QMAKE_LIBS_OPENGL_ES2 += -lEGL -lGLESv2
+QMAKE_LIBS_OPENVG += -lEGL -lOpenVG
+
load(device_config)
load(qt_config)

View File

@ -0,0 +1,3 @@
#!/bin/sh
export QT_QPA_PLATFORM=eglfs
export QT_QPA_EGLFS_INTEGRATION=eglfs_viv

View File

@ -0,0 +1,2 @@
#!/bin/sh
export QT_QPA_PLATFORM=wayland

View File

@ -0,0 +1,2 @@
#!/bin/sh
export QT_QPA_PLATFORM=xcb

View File

@ -0,0 +1,70 @@
# Copyright (C) 2013 Eric Bénard - Eukréa Electromatique
# Copyright (C) 2016 O.S. Systems Software LTDA.
# Copyright (C) 2016 Freescale Semiconductor
# Copyright 2017-2021 NXP
### Copy qtbase bbappend from meta-freescale
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:imxgpu = " \
file://0014-Add-IMX-GPU-support.patch \
file://0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch \
"
PACKAGECONFIG_GRAPHICS_IMX_GPU = ""
PACKAGECONFIG_GRAPHICS_IMX_GPU:mx8-nxp-bsp = "gbm kms"
PACKAGECONFIG_GRAPHICS:imxpxp = "gles2"
PACKAGECONFIG_GRAPHICS:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)} \
${PACKAGECONFIG_GRAPHICS_IMX_GPU}"
PACKAGECONFIG_GRAPHICS:imxgpu3d = "gles2 \
${PACKAGECONFIG_GRAPHICS_IMX_GPU}"
PACKAGECONFIG_GRAPHICS:use-mainline-bsp ?= "gles2 gbm kms"
PACKAGECONFIG_PLATFORM = ""
PACKAGECONFIG_PLATFORM:imxgpu2d = "no-opengl linuxfb"
PACKAGECONFIG_PLATFORM:imxgpu3d = " \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', \
bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
'eglfs', d), d)}"
PACKAGECONFIG_PLATFORM:use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'eglfs', d)}"
PACKAGECONFIG += "${PACKAGECONFIG_PLATFORM}"
PACKAGECONFIG_VULKAN_IMX_GPU = ""
PACKAGECONFIG_VULKAN_IMX_GPU:mx8-nxp-bsp = "vulkan"
PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm-nxp-bsp = ""
PACKAGECONFIG_VULKAN = ""
PACKAGECONFIG_VULKAN:imxgpu = "${PACKAGECONFIG_VULKAN_IMX_GPU}"
PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', '${PACKAGECONFIG_VULKAN}', '', d)}"
##### End of meta-freescale qtbase bbappend
IMX_BACKEND = \
"${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland',\
bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
'fb', d), d)}"
SRC_URI:append = " \
file://qt6-${IMX_BACKEND}.sh \
"
PACKAGECONFIG += "examples"
PACKAGECONFIG_PLATFORM_IMX_GPU = ""
PACKAGECONFIG_PLATFORM_IMX_GPU:mx8-nxp-bsp = "eglfs"
PACKAGECONFIG_PLATFORM:imxgpu2d += "${PACKAGECONFIG_PLATFORM_IMX_GPU}"
PACKAGECONFIG_PLATFORM:imxgpu3d += "${PACKAGECONFIG_PLATFORM_IMX_GPU}"
PARALLEL_MAKEINST = ""
PARALLEL_MAKE:task-install = "${PARALLEL_MAKEINST}"
do_install:append () {
if ls ${D}${libdir}/pkgconfig/Qt6*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt6*.pc
fi
install -d ${D}${sysconfdir}/profile.d/
install -m 0755 ${WORKDIR}/qt6-${IMX_BACKEND}.sh ${D}${sysconfdir}/profile.d/qt6.sh
}
FILES:${PN} += "${sysconfdir}/profile.d/qt5.sh"

View File

@ -0,0 +1,10 @@
PACKAGECONFIG:append:class-target = " examples"
PARALLEL_MAKEINST = ""
PARALLEL_MAKE:task-install = "${PARALLEL_MAKEINST}"
do_install:append() {
if ls ${D}${libdir}/pkgconfig/Qt6*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt6*.pc
fi
}

View File

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

View File

@ -0,0 +1 @@
PACKAGECONFIG:append = " examples"

View File

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

View File

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

View File

@ -0,0 +1,21 @@
###Copy qtwayland bbappend from meta-freescale
# etnaviv mesa does not have glx
PACKAGECONFIG:remove:use-mainline-bsp = "xcomposite-glx"
PACKAGECONFIG:remove:mx6-nxp-bsp = "xcomposite-egl xcomposite-glx"
PACKAGECONFIG:remove:mx7-nxp-bsp = "xcomposite-egl xcomposite-glx"
# i.MX8 does never provide native x11, so required dependencies are not met
PACKAGECONFIG:remove:mx8-nxp-bsp = "xcomposite-egl xcomposite-glx"
###### End of meta-freescale bbappend
PACKAGECONFIG:remove:mx6sl-nxp-bsp = "wayland-egl"
do_install:append() {
if ls ${D}${libdir}/pkgconfig/Qt6*.pc >/dev/null 2>&1; then
sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt6*.pc
fi
}

View File

@ -0,0 +1,3 @@
PACKAGECONFIG:append = " examples"
EXTRA_OECMAKE:append = " -DFEATURE_webengine_printing_and_pdf=OFF"