From d11b688e620f042b4c19e3fcfa0aa9970b3624f5 Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
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 <scott.murray@konsulko.com>
Change-Id: I0ace2d140fdceb1e0d778a0fe71d7f856a953ae4
---
 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 ++++++-
 4 files changed, 76 insertions(+), 31 deletions(-)

(limited to 'recipes-platform')

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