meta-app-framework: aglwgt.bbclass fixes 77/24677/2
authorScott Murray <scott.murray@konsulko.com>
Mon, 8 Jun 2020 23:14:07 +0000 (19:14 -0400)
committerScott Murray <scott.murray@konsulko.com>
Wed, 10 Jun 2020 01:45:46 +0000 (01:45 +0000)
Changes include:
- AGLWGT_EXTRA_BUILD_ARGS definition reworked to pass PARALLEL_MAKE
  in as BUILD_ARGS, as that gets it down to where it needs to go to
  be useful in most of the autobuild scripts/makefiles.
- The logic has been tweaked in do_aglwgt_package to only try to
  build the coverage version of widgets for things that have test
  widgets. This avoids build and packaging complications with
  applications, and seems reasonable ATM given there are no plans to
  attempt coverage for non-bindings.
- A widget not being present after calling "autobuild package" has
  been bumped to bbfatal instead of bbwarn for the release widget to
  immediately flag errors.
- "-maxdepth 1" has been added to the find commands used to check for
  widget presence to avoid picking up stray .wgt files outside of the
  immediate target build directory.

Bug-AGL: SPEC-3300

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I9d814894684b525f774f730c8e94e1c46cda16ce
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/24677
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>

meta-app-framework/classes/aglwgt.bbclass

index b5f7be8..1a76992 100644 (file)
@@ -28,7 +28,7 @@ EXTRA_OECMAKE_append = " -DCMAKE_BUILD_TYPE=RELEASE"
 # FIXME: Remove once CMake+ninja issues are resolved
 OECMAKE_GENERATOR = "Unix Makefiles"
 
-AGLWGT_EXTRA_BUILD_ARGS = "VERBOSE=TRUE ${PARALLEL_MAKE}"
+AGLWGT_EXTRA_BUILD_ARGS = 'VERBOSE=TRUE BUILD_ARGS="${PARALLEL_MAKE}"'
 
 # Only widgets with recipe names starting with agl-service- are
 # assumed to have tests by default, set this to "true" to force
@@ -62,24 +62,24 @@ do_aglwgt_package()  {
         bbwarn "Target: package failed"
     fi
 
+    mkdir -p ${S}/build-debug
+    cd ${S}/build-debug
+    if ! $bldcmd package-debug BUILD_DIR=${S}/build-debug DEST=${B}/build-debug ${AGLWGT_EXTRA_BUILD_ARGS}; then
+        bbwarn "Target: package-debug failed"
+    fi
+
     if echo ${BPN} | grep -q '^agl-service-' || [ "${AGLWGT_HAVE_TESTS}" = "true" ]; then
         mkdir -p ${S}/build-test
         cd ${S}/build-test
         if ! $bldcmd package-test BUILD_DIR=${S}/build-test DEST=${B}/build-test ${AGLWGT_EXTRA_BUILD_ARGS}; then
             bbwarn "Target: package-test failed"
         fi
-    fi
 
-    mkdir -p ${S}/build-debug
-    cd ${S}/build-debug
-    if ! $bldcmd package-debug BUILD_DIR=${S}/build-debug DEST=${B}/build-debug ${AGLWGT_EXTRA_BUILD_ARGS}; then
-        bbwarn "Target: package-debug failed"
-    fi
-
-    mkdir -p ${S}/build-coverage
-    cd ${S}/build-coverage
-    if ! $bldcmd package-coverage BUILD_DIR=${S}/build-coverage DEST=${B}/build-coverage ${AGLWGT_EXTRA_BUILD_ARGS}; then
-        bbwarn "Target: package-coverage failed"
+        mkdir -p ${S}/build-coverage
+        cd ${S}/build-coverage
+        if ! $bldcmd package-coverage BUILD_DIR=${S}/build-coverage DEST=${B}/build-coverage ${AGLWGT_EXTRA_BUILD_ARGS}; then
+            bbwarn "Target: package-coverage failed"
+        fi
     fi
 }
 
@@ -98,19 +98,19 @@ do_aglwgt_deploy() {
         DEST=manualinstall
     fi
 
-    if [ "$(find ${B}/build-release -name '*.wgt')" ]; then
+    if [ "$(find ${B}/build-release -name '*.wgt' -maxdepth 1)" ]; then
         install -d ${D}/usr/AGL/apps/$DEST
         install -m 0644 ${B}/build-release/*.wgt ${D}/usr/AGL/apps/$DEST/
     else
-        bberror "no package found in widget directory"
+        bbfatal "no package found in widget directory"
     fi
 
     for t in test debug coverage; do
-        if [ "$(find ${B}/build-${t} -name *-${t}.wgt)" ]; then
+        if [ "$(find ${B}/build-${t} -name *-${t}.wgt -maxdepth 1)" ]; then
             install -d ${D}/usr/AGL/apps/${t}
             install -m 0644 ${B}/build-${t}/*-${t}.wgt ${D}/usr/AGL/apps/${t}/
         elif [ "${AGLWGT_PACKAGE_WARN}" = "true" ]; then
-            if [ "$t" != "test" ]; then
+            if [ "$t" != "test" -a "$t" != "coverage" ]; then
                 bbwarn "no package found in ${t} widget directory"
             elif echo ${BPN} | grep -q '^agl-service-' || [ "${AGLWGT_HAVE_TESTS}" = "true" ]; then
                 bbwarn "no package found in ${t} widget directory"