meta-digi-dey: upgrade QT6 to version 6.5

QT v6.5 is a long term support (LTS) and is the version used in newer
releases from NXP (based on Yocto 4.2 mickledore)

This commit basically backports the QT v6.5 from meta-freescale community
layer (mickledore) with some recipe's polishing from meta-imx.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2023-09-01 13:56:32 +02:00
parent 39fadff26a
commit a5c6f2b795
18 changed files with 88 additions and 211 deletions

View File

@ -71,3 +71,9 @@ LICENSE_FLAGS_ACCEPTED += "commercial"
# Use systemd init manager by default
INIT_MANAGER ?= "systemd"
# Enable examples for some QT packages
PACKAGECONFIG:append:class-target:pn-qtbase = " examples"
PACKAGECONFIG:append:class-target:pn-qtdeclarative = " examples"
PACKAGECONFIG:append:class-target:pn-qtquick3d = " examples"
PACKAGECONFIG:append:class-target:pn-qtwebengine = " examples"

View File

@ -1,7 +0,0 @@
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

@ -1,32 +0,0 @@
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

@ -1,14 +0,0 @@
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,8 @@
#!/bin/sh
if test -z $XDG_RUNTIME_DIR; then
export XDG_RUNTIME_DIR=/run/user/$(id -u)
if [ ! -d $XDG_RUNTIME_DIR ]; then
mkdir -m 700 -p $XDG_RUNTIME_DIR
fi
fi
export QT_QPA_PLATFORM=linuxfb

View File

@ -1,74 +1,75 @@
# 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 \
"
# Copyright (C) 2016, 2017 O.S. Systems Software LTDA.
# Copyright (C) 2017-2018 NXP
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_IMX_GPU = ""
PACKAGECONFIG_GRAPHICS_IMX_GPU:mx8-nxp-bsp = "gbm kms"
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_GRAPHICS:use-mainline-bsp ?= " \
gles2 gbm kms"
PACKAGECONFIG += " \
${PACKAGECONFIG_PLATFORM}"
PACKAGECONFIG_PLATFORM = ""
PACKAGECONFIG_PLATFORM:imxgpu2d = "no-opengl linuxfb"
PACKAGECONFIG_PLATFORM:imxgpu2d = " \
no-opengl \
linuxfb \
${PACKAGECONFIG_PLATFORM_EGLFS}"
PACKAGECONFIG_PLATFORM:imxgpu3d = " \
${PACKAGECONFIG_PLATFORM_EGLFS}"
PACKAGECONFIG_PLATFORM_EGLFS = ""
PACKAGECONFIG_PLATFORM_EGLFS: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_PLATFORM_EGLFS:mx8-nxp-bsp = " \
eglfs"
PACKAGECONFIG_PLATFORM:use-mainline-bsp = " \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'eglfs', d)}"
PACKAGECONFIG += " \
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', '${PACKAGECONFIG_VULKAN}', '', d)}"
PACKAGECONFIG_VULKAN = ""
PACKAGECONFIG_VULKAN:imxgpu = " \
${PACKAGECONFIG_VULKAN_IMX_GPU}"
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
#
# FROM meta-imx
#
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://qt-${IMX_BACKEND}.sh"
IMX_BACKEND = \
"${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland',\
"${@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}"
'${IMX_BACKEND_FB}', d), d)}"
IMX_BACKEND_FB = "linuxfb"
IMX_BACKEND_FB:imxgpu3d = "eglfs"
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
install -m 0755 ${WORKDIR}/qt-${IMX_BACKEND}.sh ${D}${sysconfdir}/profile.d/qt.sh
}
do_install:append:ccimx93() {
echo "export QMLSCENE_DEVICE=softwarecontext" >> ${D}${sysconfdir}/profile.d/qt6.sh
if ! grep -qs "^export QMLSCENE_DEVICE=softwarecontext" ${D}${sysconfdir}/profile.d/qt.sh; then
echo "export QMLSCENE_DEVICE=softwarecontext" >> ${D}${sysconfdir}/profile.d/qt.sh
fi
}
FILES:${PN} += "${sysconfdir}/profile.d/qt6.sh"

View File

@ -1,10 +0,0 @@
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

@ -1,8 +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
}
PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}"
PACKAGECONFIG_REMOVE ?= \
"${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', '', 'ffmpeg', d)}"
pkg_postinst:${PN}:ccimx6() {
echo '# Use FSL gstreamer plugin video source' >> $D${sysconfdir}/profile.d/qt6.sh

View File

@ -1,6 +0,0 @@
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

@ -1,6 +0,0 @@
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

@ -1,21 +1,6 @@
###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

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

View File

@ -1,31 +0,0 @@
# 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 \
cinematicexperience-rhi-tools \
"
RDEPENDS:${PN}:append:ccimx93 = " \
cinematicexperience-rhi \
cinematicexperience-rhi-tools \
"
RDEPENDS:${PN}:append:imxgpu3d = " \
qt3d-examples \
"
RDEPENDS:${PN}:append:ccmp15 = " \
cinematicexperience-rhi \
cinematicexperience-rhi-tools \
"

View File

@ -8,39 +8,27 @@ PACKAGE_ARCH = "${TUNE_PKGARCH}"
inherit packagegroup
# Install Freescale QT demo applications
RDEPENDS:${PN} = " \
${QT6_IMAGE_INSTALL_APPS} \
${QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE} \
${QT6_IMAGE_INSTALL_EXAMPLES} \
${QT6_IMAGE_INSTALL_FONTS} \
${QT6_IMAGE_INSTALL_QUICK3D} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxkbcommon', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-plugins', '', d)}"
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 "
QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE = ""
QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:imxgpu = "cinematicexperience-rhi cinematicexperience-rhi-tools"
QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:ccimx93 = "cinematicexperience-rhi cinematicexperience-rhi-tools"
QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:ccmp15 = "cinematicexperience-rhi cinematicexperience-rhi-tools"
# Install qtquick3d
QT6_QTQUICK3D = "qtquick3d qtquick3d-examples"
QT6_IMAGE_INSTALL_EXAMPLES = "qtbase-examples qtdeclarative-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_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "
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} \
"
QT6_IMAGE_INSTALL:ccmp15 = " \
${QT6_IMAGE_INSTALL_common} \
"
RDEPENDS:${PN} += " \
${QT6_IMAGE_INSTALL} \
"
QT6_IMAGE_INSTALL_QUICK3D = "qtquick3d qtquick3d-dev qtquick3d-examples"
# Quick3d does not work on systems without a proper GPU
QT6_IMAGE_INSTALL_QUICK3D:ccimx93 = ""

View File

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