zephyr-core/zephyr-kernel: Implement do_install

Install the Zephyr binaries to ${D}/firmware prior to copying them to
${DEPLOYDIR}.

Implementing do_install has three advantages:
 * In use-cases when the Zephyr application is not the final artifact
   (e.g. when signing or using additional firmware), other recipes can
   pick up the Zephyr binary from the sysroot instead of
   DEPLOY_DIR_IMAGE.
 * It may sometimes make sense to install the binaries in a Linux
   filesystem (e.g. to be run by a hypervisor).
 * OE-core's QA checks run on the packaged binaries.

There are currently two QA checks that fail, so add these to INSANE_SKIP
for now.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
This commit is contained in:
Peter Hoyes
2022-09-30 17:34:37 +01:00
committed by Naveen Saini
parent 6cf57189bf
commit 775f6de08a

View File

@@ -4,19 +4,26 @@ inherit deploy
OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}"
do_install[noexec] = "1"
do_install() {
install -d ${D}/firmware
do_deploy() {
install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf
install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${D}/firmware/${PN}.elf
if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ]
then
install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin
install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${D}/firmware/${PN}.bin
fi
if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ]
then
install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi
install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${D}/firmware/${PN}.efi
fi
}
addtask deploy after do_compile
FILES:${PN} = "/firmware"
INSANE_SKIP += "ldflags buildpaths"
SYSROOT_DIRS += "/firmware"
do_deploy() {
cp ${D}/firmware/${PN}.* ${DEPLOYDIR}/
}
addtask deploy after do_install