Pre-compile resources and remove unused dependencies 07/30107/3 18.90.0 salmon/18.90.0 salmon_18.90.0
authorSuchinton <suchinton.2001@gmail.com>
Wed, 17 Jul 2024 17:09:29 +0000 (22:39 +0530)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Wed, 24 Jul 2024 09:14:03 +0000 (09:14 +0000)
V1:
    - Use rcc to compile qrc resource file on host, and remove post install step to compile on target.
    - Remove PySide6 as dependency for demo control panel as
      python3-qtwidgets is no longer used to provide toggle button, and pyside6-rcc is not provided.

V2:
    - Replace PySide6 with PyQt6 at the resouce compile step
    - Add dynamic layer for meta-qt6 to provide QtWidgets and QtSvg
    - Update runtime dependencies to provide bash and python3-rich for CLI interface

Bug-AGL: SPEC-5195

Change-Id: Ic390369a37f266b94b82397ba61a4f95ec0ed492
Signed-off-by: Suchinton <suchinton.2001@gmail.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/30107
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jenkins Job builder account
meta-agl-demo-control-panel/conf/layer.conf
meta-agl-demo-control-panel/dynamic-layers/meta-qt6/recipes-python/pyqt6/python3-pyqt6_%.bbappend [new file with mode: 0644]
meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/agl-demo-control-panel_git.bb

index fc185f9..ea25610 100644 (file)
@@ -5,6 +5,10 @@ BBPATH =. "${LAYERDIR}:"
 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
             ${LAYERDIR}/recipes-*/*/*.bbappend"
 
+BBFILES_DYNAMIC += " \
+    qt6-layer:${LAYERDIR}/dynamic-layers/meta-qt6/*/*/*.bbappend \
+"
+
 BBFILE_COLLECTIONS += "agldemocontrolpanel"
 BBFILE_PATTERN_agldemocontrolpanel = "^${LAYERDIR}/"
 BBFILE_PRIORITY_agldemocontrolpanel = "70"
diff --git a/meta-agl-demo-control-panel/dynamic-layers/meta-qt6/recipes-python/pyqt6/python3-pyqt6_%.bbappend b/meta-agl-demo-control-panel/dynamic-layers/meta-qt6/recipes-python/pyqt6/python3-pyqt6_%.bbappend
new file mode 100644 (file)
index 0000000..defe585
--- /dev/null
@@ -0,0 +1,4 @@
+PYQT_MODULES:append = " \
+    QtWidgets \
+    QtSvg \
+"
\ No newline at end of file
index d286282..f9cb152 100644 (file)
@@ -12,12 +12,18 @@ S = "${WORKDIR}/git"
 
 inherit systemd allarch update-alternatives
 
+DEPENDS += "qtbase-native"
+
 SYSTEMD_SERVICE:${PN} = "${BPN}.service"
 
 do_configure[noexec] = "1"
 do_compile[noexec] = "1"
 
 do_install() {
+    # compile qrc
+    # RECIPE_SYSROOT_NATIVE
+    ${RECIPE_SYSROOT_NATIVE}/usr/libexec/rcc -g python ${S}/assets/res.qrc | sed '0,/PySide6/s//PyQt6/' > ${S}/res_rc.py
+
     # There's no provision for a Pythonic install into /usr/lib, so dump
     # into a directory /usr/libexec.
     install -d ${D}${libexecdir}/${BPN}
@@ -40,12 +46,6 @@ do_install() {
         ${D}${sysconfdir}/agl-demo-control-panel/config.ini.gateway-demo
 }
 
-# For now generate resource wrapper on first boot, as it looks non-trivial
-# to get python3-pyqt5-native working to run pyrcc5 during build.
-pkg_postinst_ontarget:${PN} () {
-    /usr/bin/pyrcc5 -o ${libexecdir}/${BPN}/res_rc.py ${libexecdir}/${BPN}/assets/res.qrc
-    true
-}
 
 ALTERNATIVE_LINK_NAME[agl-demo-control-panel.ini] = "${sysconfdir}/agl-demo-control-panel/config.ini"
 
@@ -55,10 +55,11 @@ RDEPENDS:${PN} += " \
     python3-modules \
     python3-packaging \
     python3-can \
+    python3-rich \
     python3-pyqt6 \
-    python3-pyside6 \
     agl-users \
     weston \
+    bash \
 "
 
 PACKAGE_BEFORE_PN += "${PN}-conf"
@@ -82,4 +83,4 @@ RDEPENDS:${PN}-conf-gateway-demo = "${PN}"
 RPROVIDES:${PN}-conf-gateway-demo = "agl-demo-control-panel.ini"
 ALTERNATIVE:${PN}-conf-gateway-demo = "agl-demo-control-panel.ini"
 ALTERNATIVE_TARGET_${PN}-conf-gateway-demo = "${sysconfdir}/agl-demo-control-panel/config.ini.gateway-demo"
-ALTERNATIVE_PRIORITY_${PN}-conf-gateway-demo = "30"
+ALTERNATIVE_PRIORITY_${PN}-conf-gateway-demo = "30"
\ No newline at end of file