meta-digi-dey: make QT5 optional

Remove the 'qt5-layer' hardcoded dependence for 'digi-dey' and
dynamically get whether QT5 is being used in the project. This is done
with a new class _qt-version.bbclass_ that is able to get that
information from the project.

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:05 +01:00
parent ae55a43695
commit 14e504344f
7 changed files with 62 additions and 38 deletions

View File

@ -25,7 +25,8 @@ EXTRA_USERS_PARAMS += "\
# #
# Create QT5 capable toolchain/SDK if 'dey-qt' image feature is enabled # Create QT5 capable toolchain/SDK if 'dey-qt' image feature is enabled
# #
inherit ${@bb.utils.contains("IMAGE_FEATURES", "dey-qt", "populate_sdk_qt5", "",d)} inherit qt-version
inherit ${@bb.utils.contains("IMAGE_FEATURES", "dey-qt", "${QT_POPULATE_SDK}", "",d)}
# #
# Generate ZIP installer if configured in the project's local.conf # Generate ZIP installer if configured in the project's local.conf

View File

@ -0,0 +1,12 @@
#
# Abstract QT related metadata in this class with two purposes:
#
# - Remove the mandatory dependence of DEY in meta-qtX
# - Support multiple QT versions
#
# Copyright (c) 2023, Digi International Inc.
#
QT_AVAILABLE = "${@bb.utils.contains_any('BBFILE_COLLECTIONS', 'qt5-layer', 'true', 'false', d)}"
QT_VERSION = "${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
QT_POPULATE_SDK = "${@oe.utils.vartrue('QT_AVAILABLE', 'populate_sdk_${QT_VERSION}', '', d)}"

View File

@ -25,7 +25,7 @@ BBFILE_PATTERN_digi-dey := "^${LAYERDIR}/"
BBFILE_PRIORITY_digi-dey = "6" BBFILE_PRIORITY_digi-dey = "6"
LAYERDEPENDS_digi-dey = "core digi-arm" LAYERDEPENDS_digi-dey = "core digi-arm"
LAYERDEPENDS_digi-dey += "openembedded-layer networking-layer webserver qt5-layer swupdate" LAYERDEPENDS_digi-dey += "openembedded-layer networking-layer webserver swupdate"
LAYERSERIES_COMPAT_digi-dey = "kirkstone" LAYERSERIES_COMPAT_digi-dey = "kirkstone"

View File

@ -0,0 +1,44 @@
#
# Copyright (C) 2013-2018, Digi International Inc.
#
SUMMARY = "QT packagegroup for DEY image"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
# Install Freescale QT demo applications
QT5_APPS = ""
QT5_APPS:imxgpu3d = "${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-qtapplications", "", d)}"
# Install fonts
QT5_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "
# Install Freescale QT demo applications for X11 backend only
MACHINE_QT5_MULTIMEDIA_APPS = ""
QT5_RDEPENDS = ""
QT5_RDEPENDS_common = " \
packagegroup-qt5-demos \
${QT5_FONTS} \
${QT5_APPS} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxkbcommon', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-plugins', '', d)}\
"
QT5_RDEPENDS:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT5_RDEPENDS_common}', \
'qtbase qtbase-plugins', d)}"
QT5_RDEPENDS:imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT5_RDEPENDS_common}', \
'qtbase qtbase-examples qtbase-plugins qtquickcontrols2 qtquickcontrols2-qmlplugins', d)}"
QT5_RDEPENDS:imxgpu3d = " \
${QT5_RDEPENDS_common} \
gstreamer1.0-plugins-good-qt \
"
# Add packagegroup-qt5-webengine to QT5_RDEPENDS and comment out the line below to install qtwebengine to the rootfs.
QT5_RDEPENDS:remove = " packagegroup-qt5-webengine"
RDEPENDS:${PN} += " \
liberation-fonts \
${QT5_RDEPENDS} \
"

View File

@ -1,44 +1,11 @@
# #
# Copyright (C) 2013-2018, Digi International Inc. # Copyright (C) 2013-2023, Digi International Inc.
# #
SUMMARY = "QT packagegroup for DEY image" SUMMARY = "QT packagegroup for DEY image"
PACKAGE_ARCH = "${MACHINE_ARCH}" PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup inherit packagegroup
# Install Freescale QT demo applications inherit qt-version
QT5_APPS = ""
QT5_APPS:imxgpu3d = "${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-qtapplications", "", d)}"
# Install fonts RDEPENDS:${PN} += "${@oe.utils.conditional('QT_VERSION', '', '', 'packagegroup-${QT_VERSION}-dey', d)}"
QT5_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "
# Install Freescale QT demo applications for X11 backend only
MACHINE_QT5_MULTIMEDIA_APPS = ""
QT5_RDEPENDS = ""
QT5_RDEPENDS_common = " \
packagegroup-qt5-demos \
${QT5_FONTS} \
${QT5_APPS} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxkbcommon', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland qtwayland-plugins', '', d)}\
"
QT5_RDEPENDS:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT5_RDEPENDS_common}', \
'qtbase qtbase-plugins', d)}"
QT5_RDEPENDS:imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11','${QT5_RDEPENDS_common}', \
'qtbase qtbase-examples qtbase-plugins qtquickcontrols2 qtquickcontrols2-qmlplugins', d)}"
QT5_RDEPENDS:imxgpu3d = " \
${QT5_RDEPENDS_common} \
gstreamer1.0-plugins-good-qt \
"
# Add packagegroup-qt5-webengine to QT5_RDEPENDS and comment out the line below to install qtwebengine to the rootfs.
QT5_RDEPENDS:remove = " packagegroup-qt5-webengine"
RDEPENDS:${PN} += " \
liberation-fonts \
${QT5_RDEPENDS} \
"