meta-app-framework: rework aglwgt.bbclass to solely use autobuild 84/24884/2
authorScott Murray <scott.murray@konsulko.com>
Thu, 25 Jun 2020 22:26:23 +0000 (18:26 -0400)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 26 Jun 2020 13:02:06 +0000 (13:02 +0000)
commit6ba0b4d2b38b88fef8bb847fe8631995d72910b6
treeb9dafa01ad87200ec4a0d0be60bf127e71b9b15a
parentdd45b827fa33b83e3ad84bea983db0625fe28149
meta-app-framework: rework aglwgt.bbclass to solely use autobuild

Changes include:
- OE_QMAKE_STRIP definition added to re-enable strip so it will work
  for qmake based widgets.
- AGLWGT_HAVE_TESTS and AGLWGT_PACKAGE_WARN changed to use 0/1 instead
  or true/false to match more typical OE flag usage.  As well, their
  definitions are now done with ?= to make over-riding more
  straightforward.
- The AGLWGT_AUTOINSTALL_${PN} variable has been renamed to just be
  AGLWGT_AUTOINSTALL, and a default definition has been added to make
  the behavior more explicit.  There is only one in-tree user (the
  agl-service-can-high-viwi binding), which is currently not built and
  has been slated for removal, so this change is thought to have no
  impact.
- A new AGLWGT_CMAKE_CONFIGURE_ARGS variable has been added with a
  definition derived from what is used in cmake.bbclass, and a
  combination of anonymous python and a prefunc is used to append its
  value to AGLWGT_EXTRA_BUILD_ARGS if cmake.bbclass has been inherited.
  This fixes issues with e.g. widgets that use CMake and Qt5, as the
  Qt5 CMake modules seem to have issues with finding module includes
  if the generated toolchain.cmake and OE_CMAKE* values are not passed
  down to CMake.
- The do_aglwgt_package and do_aglwgt_deploy tasks have been converted
  into aglwgt_do_compile and aglwgt_do_install, and aglwgt_do_compile
  now calls autobuild to build and package all widgets.  This fixes
  a lot of inconsistencies with respect to the debug/test/coverage
  widget build environment that were seen with the previous approach.
- Logic has been added to clear out the target build directory (${B})
  if it is not the same as the source directory (${S}) to match the
  behavior of do_configure in cmake.bbclass.
- All autobuild invocations are now done with the working directory
  being the build directory (${B}).  If a widget build for some reason
  needs it to be inside the source tree (i.e. ${S}), as before, it
  should either over-ride the value of B in its recipe, or change
  directories in its autobuild script.  An example of widgets that
  this affects are the html5-* applications, their autobuild scripts
  have been appropriately updated.
- The BUILD_DIR* output directory arguments passed to the autobuild
  script now point into ${B} and not ${S}, to ensure that the widget
  source trees are not contaminated if at all possible.  It is
  believed that the previous rounds of autobuild script rework have
  addressed the need to support this in all in-tree widgets.
- The do_install_bbappend in the agl-service-network binding recipe
  has been updated for the change to build output directory location.

Bug-AGL: SPEC-2049, SPEC-3300

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I88ca33ad7a460436008442a3a8f1adf197f5a669
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/24884
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-boot-test: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-profile-core/recipes-apis/agl-service-network/agl-service-network_git.bb
meta-app-framework/classes/aglwgt.bbclass