Widget packaging rework 86/24486/1
authorScott Murray <scott.murray@konsulko.com>
Tue, 28 Apr 2020 21:11:32 +0000 (21:11 +0000)
committerScott Murray <scott.murray@konsulko.com>
Fri, 8 May 2020 17:31:03 +0000 (13:31 -0400)
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

conf/include/agl-demo-preload.inc
conf/include/agl-demo.inc
recipes-platform/images/agl-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb
recipes-platform/packagegroups/packagegroup-hmi-framework.bb

index a17d140..da46810 100644 (file)
@@ -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"
 
 # 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"
index 5a70196..001f37d 100644 (file)
@@ -5,3 +5,15 @@ IMAGE_FEATURES =+ "debug-tweaks"
 DISTRO_FEATURES_append = " automount "
 
 IMAGE_INSTALL_append = " screen mc "
 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"
index 297cb70..6c4346b 100644 (file)
@@ -5,8 +5,8 @@ require agl-demo-platform.inc
 
 LICENSE = "MIT"
 
 
 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 = " \
 
 # add packages for demo platform (include demo apps) here
 IMAGE_INSTALL_append = " \
index d72112b..61b76a5 100644 (file)
@@ -5,8 +5,10 @@ LICENSE = "MIT"
 
 inherit packagegroup
 
 
 inherit packagegroup
 
+PROVIDES = "${PACKAGES}"
 PACKAGES = "\
     packagegroup-agl-demo-platform \
 PACKAGES = "\
     packagegroup-agl-demo-platform \
+    packagegroup-agl-demo-platform-devel \
     "
 
 ALLOW_EMPTY_${PN} = "1"
     "
 
 ALLOW_EMPTY_${PN} = "1"
@@ -17,10 +19,10 @@ RDEPENDS_${PN} += "\
 
 RDEPENDS_${PN} += "\
     packagegroup-agl-profile-graphical-qt5 \
 
 RDEPENDS_${PN} += "\
     packagegroup-agl-profile-graphical-qt5 \
+    packagegroup-hmi-framework \
     packagegroup-agl-demo \
     "
 
     packagegroup-agl-demo \
     "
 
-
 AGL_APPS = " \
     dashboard \
     hvac \
 AGL_APPS = " \
     dashboard \
     hvac \
@@ -32,10 +34,8 @@ AGL_APPS = " \
     settings \
     messaging \
     low-can-demo \
     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', 'taskmanager' , '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \
+    virtual/mixer \
     "
 
 QTAGLEXTRAS = "${@bb.utils.contains("DISTRO_FEATURES", "agl-hmi-framework", " qtaglextras", "",d)}"
     "
 
 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"
 
 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)}"
 # 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)}"
 
 # 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 \
 RDEPENDS_${PN}_append = " \
     qtquickcontrols2-agl \
     qtquickcontrols2-agl-style \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \
     ${AGL_APPS} \
     ${QTAGLEXTRAS} \
     ${CLUSTER_SUPPORT} \
     ${DEMO_PRELOAD} \
     ${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 \
     "
     "
index 8d0d74b..1599299 100644 (file)
@@ -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
 
 LICENSE = "MIT"
 
 inherit packagegroup
 
+PROVIDES = "${PACKAGES}"
 PACKAGES = "\
     packagegroup-agl-ivi-services \
 PACKAGES = "\
     packagegroup-agl-ivi-services \
+    packagegroup-agl-ivi-services-test \
+    packagegroup-agl-ivi-services-devel \
     "
 
     "
 
-ALLOW_EMPTY_${PN} = "1"
-
 RDEPENDS_${PN} += "\
 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}'))])} \
     "
     "
index cf704e6..f7de02c 100644 (file)
@@ -9,7 +9,13 @@ PR = "2"
 
 inherit packagegroup
 
 
 inherit packagegroup
 
-RDEPENDS_${PN} += " \
+PROVIDES = "${PACKAGES}"
+PACKAGES = "\
+    packagegroup-hmi-framework \
+    packagegroup-hmi-framework-devel \
+    "
+
+RDEPENDS_${PN} = " \
   agl-service-windowmanager \
   agl-service-homescreen \
   homescreen \
   agl-service-windowmanager \
   agl-service-homescreen \
   homescreen \
@@ -21,3 +27,12 @@ RDEPENDS_${PN} += " \
   hmi-debug \
   launcher \
 "
   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 \
+"