===== Application bitbake wrapper recipes ===== These are simple wrapper recipes that will **''inherit aglwgt''** and produce a .wgt package from application sources if **these conditions** are met: * The build works with the SDK workflow already * ''make package'' is a valid make target * The wgt file is written to ''package/.wgt'' Also take **special care** that: * There are **no dependencies** outside the wgt * No dependencies **between** wgt's * Nothing should itself depend on a wgt * wgt's need to be self-contained ===== Shim recipe template ===== $~/> cat recipes-demo-hmi/helloworld/helloworld_git.bb SUMMARY = "helloworld application wrapper recipe" DESCRIPTION = "helloworld application wrapper recipe to build the app with bitbake" HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/XYZ" SECTION = "apps" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/XYZ;protocol=http" SRCREV = "${AUTOREV}" PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" inherit aglwgt # Add inherit statements for your build procedure # e.g. inherit cmake # or inherit qmake5 # build-time dependencies #DEPENDS += "qtquickcontrols2" # Add your build-time dependencies # for all libraries to make sure the link step works # Double check these are available at run-time and # adapt the platform's packagegroups if needed ===== Sample shim recipe ===== $~/> cat recipes-demo-hmi/mixer/mixer_git.bb SUMMARY = "Mixer for CES2017 AGL Demonstration" DESCRIPTION = "AGL HMI application for control of PulseAudio mixer elements" HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/mixer" SECTION = "apps" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/mixer;protocol=http" SRCREV = "${AUTOREV}" PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" inherit qmake5 aglwgt # build-time dependencies DEPENDS += "qtquickcontrols2 pulseaudio" These variables are **not allowed** for the application wrapper recipes: * RDEPENDS (these must come from the platform) ===== Example: Makefile ===== ===== Example: CMakelists.txt ===== No example yet. Things are discussed on Jira: - https://jira.automotivelinux.org/browse/SPEC-495 - https://jira.automotivelinux.org/browse/SPEC-503 ===== Example: qmake.pro ===== The HVAC application is built using Qt and qmake. Check this example: [[https://git.automotivelinux.org/apps/hvac/tree/]]. ===== Autobuild migration ===== A warning is issued on old wgt build: WARNING: navigation-git-r0 do_aglwgt_package: OBSOLETE: You must have an autobuild script located in: WARNING: navigation-git-r0 do_aglwgt_package: autobuild/agl/ from the project root source folder WARNING: navigation-git-r0 do_aglwgt_package: with filename autobuild which should generate WARNING: navigation-git-r0 do_aglwgt_package: a .wgt file using wgtpack in the build WARNING: navigation-git-r0 do_aglwgt_package: root folder calling: WARNING: navigation-git-r0 do_aglwgt_package: ./autobuild/agl/autobuild package DEST= WARNING: navigation-git-r0 do_aglwgt_package: Fix your package as it will not work within the SDK WARNING: navigation-git-r0 do_aglwgt_package: See: https://wiki.automotivelinux.org/troubleshooting/app-recipes This warning is about the migration of **wgt** package build from various methods to only one, the **autobuild** script. This script was originally located in **/conf.d/autobuild/{agl,linux}/autobuild** but now it should be located directly at the project root folder **/autobuild/{agl,linux}/autobuild**. Yocto takes the **autobuild** in the **agl** subdirectory. So you need the script **/autobuild/agl/autobuild**. An example can be found in gerrit [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/cmake-apps-module.git;a=blob_plain;f=src/template.d/autobuild/agl/autobuild.in;hb=HEAD|cmake-apps-module]] repository and use the CMake module to build the **wgt** so you maybe have to tweak it a little bit.