qt6: add qt6 support for the ccmp25-dvk

Using the qt5 STM customizations as reference, adapt them to qt6 by changing
filenames and paths when needed and porting the qtbase configuration options
from the v2.1.0 branch of meta-st-x-linux-qt. Make sure that the
cinematicexperience is included in packagegroup-qt6-dey.

For now, leave the STM qt5 support as-is for backwards compatibility.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
Gabriel Valcazar 2025-01-20 17:37:08 +01:00
parent 767a3a4929
commit be67a1e4e7
6 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,8 @@
{
"device": "/dev/dri/card0",
"outputs": [
{ "name": "HDMI1", "mode": "1280x720", "size": "1280x720" }
],
"hwcursor": false
}

View File

@ -0,0 +1,8 @@
{
"device": "/dev/dri/card0",
"outputs": [
{ "name": "HDMI1", "mode": "1920x1080", "size": "1920x1080" }
],
"hwcursor": false
}

View File

@ -0,0 +1,19 @@
#!/bin/sh
export QT_QPA_PLATFORM=eglfs
# Use the KMS/DRM backend
export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
if [ -e /usr/share/qt6/cursor.json ]; then
export QT_QPA_EGLFS_KMS_CONFIG=/usr/share/qt6/cursor.json
fi
# Force to keep the MODE SETTING set
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
# Force to use KMS ATOMIC
export QT_QPA_EGLFS_KMS_ATOMIC=1
# EGLFS environment variables accessible for qt 6.8
# Documentation: https://doc.qt.io/qt-6/embedded-linux.html

View File

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

View File

@ -0,0 +1,30 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
# Qt Flags for STM32MP25x - GLES3 support available
QT_CONFIG_FLAGS:remove:stm32mp2common = "-no-opengles3"
QT_CONFIG_FLAGS:append:stm32mp2common = " -opengles3"
SRC_URI:append:class-target = " \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', \
'file://qt-wayland.sh', \
'file://qt-eglfs.sh \
file://cursor.json ', d)} \
"
do_install:append:class-target () {
install -d ${D}${sysconfdir}/profile.d/
if ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'true', 'false', d)}; then
# Wayland backend
install -m 0755 ${WORKDIR}/qt-wayland.sh ${D}${sysconfdir}/profile.d/qt.sh
else
# EGLFS backend
install -d ${D}${datadir}/qt6
install -m 0755 ${WORKDIR}/qt-eglfs.sh ${D}/${sysconfdir}/profile.d/qt.sh
install -m 0664 ${WORKDIR}/cursor.json ${D}${datadir}/qt6/
fi
}
FILES:${PN}:append:class-target = " \
${sysconfdir}/profile.d/qt.sh \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', '${datadir}/qt6', d)} \
"

View File

@ -24,6 +24,7 @@ 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"
QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:ccmp25 = "cinematicexperience-rhi cinematicexperience-rhi-tools"
QT6_IMAGE_INSTALL_EXAMPLES = "qtbase-examples qtdeclarative-examples"