From 14e504344f2ba67090dfd8a986e74e39eefc0717 Mon Sep 17 00:00:00 2001 From: Javier Viguera Date: Wed, 1 Feb 2023 12:00:05 +0100 Subject: [PATCH] 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 --- meta-digi-dey/classes/dey-image.bbclass | 3 +- meta-digi-dey/classes/qt-version.bbclass | 12 +++++ meta-digi-dey/conf/layer.conf | 2 +- .../packagegroups/packagegroup-qt5-demos.bb | 0 .../packagegroups/packagegroup-qt5-dey.bb | 44 +++++++++++++++++++ .../packagegroup-qt5-webengine.bb | 0 .../packagegroups/packagegroup-dey-qt.bb | 39 ++-------------- 7 files changed, 62 insertions(+), 38 deletions(-) create mode 100644 meta-digi-dey/classes/qt-version.bbclass rename meta-digi-dey/{ => dynamic-layers/qt5-layer}/recipes-qt/packagegroups/packagegroup-qt5-demos.bb (100%) create mode 100644 meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-dey.bb rename meta-digi-dey/{ => dynamic-layers/qt5-layer}/recipes-qt/packagegroups/packagegroup-qt5-webengine.bb (100%) diff --git a/meta-digi-dey/classes/dey-image.bbclass b/meta-digi-dey/classes/dey-image.bbclass index a985f55c3..ca180b916 100644 --- a/meta-digi-dey/classes/dey-image.bbclass +++ b/meta-digi-dey/classes/dey-image.bbclass @@ -25,7 +25,8 @@ EXTRA_USERS_PARAMS += "\ # # 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 diff --git a/meta-digi-dey/classes/qt-version.bbclass b/meta-digi-dey/classes/qt-version.bbclass new file mode 100644 index 000000000..35659cbf7 --- /dev/null +++ b/meta-digi-dey/classes/qt-version.bbclass @@ -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)}" diff --git a/meta-digi-dey/conf/layer.conf b/meta-digi-dey/conf/layer.conf index 5cf610019..76e14522b 100644 --- a/meta-digi-dey/conf/layer.conf +++ b/meta-digi-dey/conf/layer.conf @@ -25,7 +25,7 @@ BBFILE_PATTERN_digi-dey := "^${LAYERDIR}/" BBFILE_PRIORITY_digi-dey = "6" 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" diff --git a/meta-digi-dey/recipes-qt/packagegroups/packagegroup-qt5-demos.bb b/meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-demos.bb similarity index 100% rename from meta-digi-dey/recipes-qt/packagegroups/packagegroup-qt5-demos.bb rename to meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-demos.bb diff --git a/meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-dey.bb b/meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-dey.bb new file mode 100644 index 000000000..a649148ba --- /dev/null +++ b/meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-dey.bb @@ -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} \ +" diff --git a/meta-digi-dey/recipes-qt/packagegroups/packagegroup-qt5-webengine.bb b/meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-webengine.bb similarity index 100% rename from meta-digi-dey/recipes-qt/packagegroups/packagegroup-qt5-webengine.bb rename to meta-digi-dey/dynamic-layers/qt5-layer/recipes-qt/packagegroups/packagegroup-qt5-webengine.bb diff --git a/meta-digi-dey/recipes-graphics/packagegroups/packagegroup-dey-qt.bb b/meta-digi-dey/recipes-graphics/packagegroups/packagegroup-dey-qt.bb index a649148ba..70d3196e6 100644 --- a/meta-digi-dey/recipes-graphics/packagegroups/packagegroup-dey-qt.bb +++ b/meta-digi-dey/recipes-graphics/packagegroups/packagegroup-dey-qt.bb @@ -1,44 +1,11 @@ # -# Copyright (C) 2013-2018, Digi International Inc. +# Copyright (C) 2013-2023, 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)}" +inherit qt-version -# 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} \ -" +RDEPENDS:${PN} += "${@oe.utils.conditional('QT_VERSION', '', '', 'packagegroup-${QT_VERSION}-dey', d)}"