From d11b688e620f042b4c19e3fcfa0aa9970b3624f5 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 28 Apr 2020 21:11:32 +0000 Subject: Widget packaging rework Changes include: - Add "agl-test-wgt" to IMAGE_FEATURES in the agl-demo template definition to yield the desired default behavior of the test widgets always being added to the agl-demo-platform image. - Created new devel and test packagegroup variants for several of the existing packagegroups to contain the associated widgets. - Added several services to the RDEPENDS in the definition of packagegroup-agl-ive-services that have been getting picked up by application RDEPENDS. This simplifies the test/devel packagegroup definitions. - Extend the agl-devel-wgt and agl-test-wgt FEATURE_PACKAGES variables as necessary to add the required corresponding widget packagegroups. - Shifted some non-applications and the use of packagegroup-hmi-framework around a bit in the definition of packagegroup-agl-demo-platform to improve clarity. - The alexa-viewer app and virtual/alexa-voiceagent-config package are now pulled in by extending the agl-voiceagent-alexa FEATURE_PACKAGES definition. This is a cleaner use of the image feature than the previous checking of IMAGE_FEATURES that was being done in the packagegroup-agl-demo-platform definition. Bug-AGL: SPEC-3300 Signed-off-by: Scott Murray Change-Id: I0ace2d140fdceb1e0d778a0fe71d7f856a953ae4 --- conf/include/agl-demo-preload.inc | 4 ++ conf/include/agl-demo.inc | 12 +++++ recipes-platform/images/agl-demo-platform.bb | 4 +- .../packagegroup-agl-demo-platform.bb | 34 ++++++++++---- .../packagegroups/packagegroup-agl-ivi-services.bb | 52 ++++++++++++++-------- .../packagegroups/packagegroup-hmi-framework.bb | 17 ++++++- 6 files changed, 92 insertions(+), 31 deletions(-) diff --git a/conf/include/agl-demo-preload.inc b/conf/include/agl-demo-preload.inc index a17d1403e..da46810b9 100644 --- a/conf/include/agl-demo-preload.inc +++ b/conf/include/agl-demo-preload.inc @@ -2,3 +2,7 @@ DISTRO_FEATURES_append = " agl-demo-preload" # Use demo device mapping for low-can that enables sllin0 PREFERRED_RPROVIDER_virtual/low-can-dev-mapping = "dev-mapping-demo" + +# Extend agl-voiceagent-alexa image feature to preload voiceagent +# configuration package. +FEATURE_PACKAGES_agl-voiceagent-alexa_append = " virtual/alexa-voiceagent-config" diff --git a/conf/include/agl-demo.inc b/conf/include/agl-demo.inc index 5a70196cb..001f37d00 100644 --- a/conf/include/agl-demo.inc +++ b/conf/include/agl-demo.inc @@ -5,3 +5,15 @@ IMAGE_FEATURES =+ "debug-tweaks" DISTRO_FEATURES_append = " automount " IMAGE_INSTALL_append = " screen mc " + +# Add local packagegroups to agl-test-wgt and agl-devel-wgt image feature +# package lists +FEATURE_PACKAGES_agl-test-wgt_append = " packagegroup-agl-ivi-services-test" +FEATURE_PACKAGES_agl-devel-wgt_append = " \ + packagegroup-agl-ivi-services-devel \ + packagegroup-agl-demo-platform-devel \ + " + +# Extend agl-voiceagent-alexa image feature with local alexa-viewer +# package. +FEATURE_PACKAGES_agl-voiceagent-alexa_append = " alexa-viewer" diff --git a/recipes-platform/images/agl-demo-platform.bb b/recipes-platform/images/agl-demo-platform.bb index 297cb706a..6c4346b70 100644 --- a/recipes-platform/images/agl-demo-platform.bb +++ b/recipes-platform/images/agl-demo-platform.bb @@ -5,8 +5,8 @@ require agl-demo-platform.inc LICENSE = "MIT" -IMAGE_FEATURES_append = " \ - " +# Always include the test widgets +IMAGE_FEATURES_append = " agl-test-wgt" # add packages for demo platform (include demo apps) here IMAGE_INSTALL_append = " \ diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb index d72112b59..61b76a5dd 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb @@ -5,8 +5,10 @@ LICENSE = "MIT" inherit packagegroup +PROVIDES = "${PACKAGES}" PACKAGES = "\ packagegroup-agl-demo-platform \ + packagegroup-agl-demo-platform-devel \ " ALLOW_EMPTY_${PN} = "1" @@ -17,10 +19,10 @@ RDEPENDS_${PN} += "\ RDEPENDS_${PN} += "\ packagegroup-agl-profile-graphical-qt5 \ + packagegroup-hmi-framework \ packagegroup-agl-demo \ " - AGL_APPS = " \ dashboard \ hvac \ @@ -32,10 +34,8 @@ AGL_APPS = " \ settings \ messaging \ low-can-demo \ - virtual/mixer \ - ${@bb.utils.contains('IMAGE_FEATURES', 'agl-voiceagent-alexa', 'alexa-viewer' , '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'taskmanager' , '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \ + virtual/mixer \ " QTAGLEXTRAS = "${@bb.utils.contains("DISTRO_FEATURES", "agl-hmi-framework", " qtaglextras", "",d)}" @@ -45,9 +45,6 @@ QTAGLEXTRAS_append = " libqtappfw" QTAGLEXTRAS_append = " qtwebsockets qtwebsockets-qmlplugins" #PREFERRED_PROVIDER_virtual/webruntime = "web-runtime" -# packages from hmi-framework aka homescreen-2017 -HOMESCREEN = "packagegroup-hmi-framework" - # Cluster demo support. # ATM no cluster map viewer is supported with the older navigation application. MAPVIEWER = "${@bb.utils.contains("PREFERRED_RPROVIDER_virtual/navigation", "ondemandnavi", "tbtnavi", "",d)}" @@ -74,13 +71,32 @@ DEMO_PRELOAD_MAPS = "${@bb.utils.contains("PREFERRED_RPROVIDER_virtual/navigatio # Preload only if agl-demo-preload is set DEMO_PRELOAD = "${@bb.utils.contains("DISTRO_FEATURES", "agl-demo-preload", " ${DEMO_PRELOAD_MAPS} ${DEMO_UNIT_CONF} poiapp-api-key", "",d)}" - RDEPENDS_${PN}_append = " \ qtquickcontrols2-agl \ qtquickcontrols2-agl-style \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \ ${AGL_APPS} \ ${QTAGLEXTRAS} \ ${CLUSTER_SUPPORT} \ ${DEMO_PRELOAD} \ - ${HOMESCREEN} \ + " + +# NOTE: Currently no coverage versions for the application widgets, +# they should be added here when available. +# Also, the navigation and mixer debug widgets are currently +# specified explicitly, as there's no simple way to derive their +# names from the virtual/ RPROVIDES at present. +RDEPENDS_${PN}-devel = " \ + packagegroup-hmi-framework-devel \ + dashboard-dbg \ + hvac-dbg \ + mediaplayer-dbg \ + mixer-dbg \ + phone-dbg \ + ondemandnavi-dbg \ + poiapp-dbg \ + radio-dbg \ + settings-dbg \ + messaging-dbg \ + taskmanager-dbg \ " diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb index 8d0d74b16..1599299e7 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb @@ -1,29 +1,43 @@ -DESCRIPTION = "The minimal set of packages for AGL IVI Connectivity Subsystem" +DESCRIPTION = "The minimal set of services to support AGL IVI demo" LICENSE = "MIT" inherit packagegroup +PROVIDES = "${PACKAGES}" PACKAGES = "\ packagegroup-agl-ivi-services \ + packagegroup-agl-ivi-services-test \ + packagegroup-agl-ivi-services-devel \ " -ALLOW_EMPTY_${PN} = "1" - RDEPENDS_${PN} += "\ -agl-service-bluetooth \ -agl-service-bluetooth-map \ -agl-service-bluetooth-pbap \ -agl-service-can-low-level \ -agl-service-geoclue \ -agl-service-geofence \ -agl-service-gps \ -agl-service-identity-agent \ -agl-service-iiodevices \ -agl-service-mediascanner \ -agl-service-navigation \ -agl-service-nfc \ -agl-service-signal-composer \ -agl-service-steering-wheel \ -agl-service-unicens \ -agl-service-weather \ + agl-service-bluetooth \ + agl-service-bluetooth-map \ + agl-service-bluetooth-pbap \ + agl-service-can-low-level \ + agl-service-geoclue \ + agl-service-geofence \ + agl-service-gps \ + agl-service-hvac \ + agl-service-identity-agent \ + agl-service-iiodevices \ + agl-service-mediascanner \ + agl-service-navigation \ + agl-service-nfc \ + agl-service-signal-composer \ + agl-service-steering-wheel \ + agl-service-telephony \ + agl-service-unicens \ + agl-service-unicens-controller \ + agl-service-weather \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'agl-service-taskmanager', '', d)} \ + " + +RDEPENDS_${PN}-test = "\ + ${@' '.join([x + '-test' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ + " + +RDEPENDS_${PN}-devel = "\ + ${@' '.join([x + '-dbg' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ + ${@' '.join([x + '-coverage' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ " diff --git a/recipes-platform/packagegroups/packagegroup-hmi-framework.bb b/recipes-platform/packagegroups/packagegroup-hmi-framework.bb index cf704e63f..f7de02c90 100644 --- a/recipes-platform/packagegroups/packagegroup-hmi-framework.bb +++ b/recipes-platform/packagegroups/packagegroup-hmi-framework.bb @@ -9,7 +9,13 @@ PR = "2" inherit packagegroup -RDEPENDS_${PN} += " \ +PROVIDES = "${PACKAGES}" +PACKAGES = "\ + packagegroup-hmi-framework \ + packagegroup-hmi-framework-devel \ + " + +RDEPENDS_${PN} = " \ agl-service-windowmanager \ agl-service-homescreen \ homescreen \ @@ -21,3 +27,12 @@ RDEPENDS_${PN} += " \ hmi-debug \ launcher \ " + +# NOTE: Currently no coverage versions of these widgets, they should +# be added here when available. +RDEPENDS_${PN}-devel = " \ + agl-service-windowmanager-dbg \ + agl-service-homescreen-dbg \ + homescreen-dbg \ + launcher-dbg \ +" -- cgit 1.2.3-korg