Message ID | 20220930163437.875793-1-peter.hoyes@arm.com |
---|---|
State | New |
Headers | show |
Series | [meta-zephyr,1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample | expand |
On Fri, Sep 30, 2022 at 05:34:36PM +0100, Peter Hoyes wrote: > From: Peter Hoyes <Peter.Hoyes@arm.com> > > At the moment: > * zephyr-image.inc depends on zephyr-sample.inc, which doesn't really > make sense. > * zephyr-image.inc inherits testimage, even though it may not be > required. > * Out-of-tree Zephyr apps have to include zephyr-sample.inc in order to > deploy the binaries, which is confusingly named if your application > isn't a "sample". > > Do some minor refactoring to untangle the above. Now: > * zephyr-sample.inc depends on zephyr-image.inc > * zephyrtest.bbclass inherits testimage. > * Out-of-tree Zephyr apps can include zephyr-image.inc > > Additionally, remove QEMU_BIN_PATH, as recent Zephyr versions now pick > up the QEMU binary automatically from PATH. > > Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> Series verified in a batch CI job (on top of the other submitted patches). See https://gitlab.com/jonmason00/meta-zephyr/-/pipelines/655489776 Tested-by: Jon Mason <jon.mason@arm.com> > --- > meta-zephyr-core/classes/zephyrtest.bbclass | 4 ++-- > .../zephyr-kernel/zephyr-image.inc | 23 +++++++++++++++---- > .../zephyr-kernel/zephyr-sample.inc | 23 +------------------ > 3 files changed, 21 insertions(+), 29 deletions(-) > > diff --git a/meta-zephyr-core/classes/zephyrtest.bbclass b/meta-zephyr-core/classes/zephyrtest.bbclass > index aa48e6c..d4fc75e 100644 > --- a/meta-zephyr-core/classes/zephyrtest.bbclass > +++ b/meta-zephyr-core/classes/zephyrtest.bbclass > @@ -1,4 +1,4 @@ > -inherit rootfs-postcommands > +inherit rootfs-postcommands testimage > > python zephyrtest_virtclass_handler () { > variant = e.data.getVar("BBEXTENDVARIANT", True) > @@ -14,7 +14,7 @@ python zephyrtest_virtclass_handler () { > e.data.setVar("ZEPHYR_IMAGENAME", pn + ".elf") > > # Most tests for Zephyr 1.6 are in the "legacy" folder > - e.data.setVar("ZEPHYR_SRC_DIR", "tests/kernel/" + variant) > + e.data.setVar("ZEPHYR_SRC_DIR", "${ZEPHYR_BASE}/tests/kernel/" + variant) > e.data.setVar("ZEPHYR_MAKE_OUTPUT", "zephyr.elf") > > # Allow to build using both foo-some_test form as well as foo-some-test > diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc > index f4c9db1..fc8c077 100644 > --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc > +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc > @@ -1,9 +1,22 @@ > -require zephyr-sample.inc > -inherit testimage > +require zephyr-kernel-src.inc > +require zephyr-kernel-common.inc > +inherit deploy > > -QEMU_BIN_PATH = "${STAGING_BINDIR_NATIVE}" > +OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" > > -OECMAKE_SOURCEPATH = "${ZEPHYR_BASE}/${ZEPHYR_SRC_DIR}" > +do_install[noexec] = "1" > + > +do_deploy() { > + install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf > > + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] > + then > + install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin > + fi > + > + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] > + then > + install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi > + fi > +} > addtask deploy after do_compile > -do_install[noexec] = "1" > diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc > index 10c25c5..5f6dea9 100644 > --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc > +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc > @@ -1,22 +1 @@ > -require zephyr-kernel-src.inc > -require zephyr-kernel-common.inc > -inherit deploy > - > -OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" > - > -do_install[noexec] = "1" > - > -do_deploy () { > - install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf > - > - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] > - then > - install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin > - fi > - > - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] > - then > - install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi > - fi > -} > -addtask deploy after do_compile > +require zephyr-image.inc > -- > 2.25.1 > >
diff --git a/meta-zephyr-core/classes/zephyrtest.bbclass b/meta-zephyr-core/classes/zephyrtest.bbclass index aa48e6c..d4fc75e 100644 --- a/meta-zephyr-core/classes/zephyrtest.bbclass +++ b/meta-zephyr-core/classes/zephyrtest.bbclass @@ -1,4 +1,4 @@ -inherit rootfs-postcommands +inherit rootfs-postcommands testimage python zephyrtest_virtclass_handler () { variant = e.data.getVar("BBEXTENDVARIANT", True) @@ -14,7 +14,7 @@ python zephyrtest_virtclass_handler () { e.data.setVar("ZEPHYR_IMAGENAME", pn + ".elf") # Most tests for Zephyr 1.6 are in the "legacy" folder - e.data.setVar("ZEPHYR_SRC_DIR", "tests/kernel/" + variant) + e.data.setVar("ZEPHYR_SRC_DIR", "${ZEPHYR_BASE}/tests/kernel/" + variant) e.data.setVar("ZEPHYR_MAKE_OUTPUT", "zephyr.elf") # Allow to build using both foo-some_test form as well as foo-some-test diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc index f4c9db1..fc8c077 100644 --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc @@ -1,9 +1,22 @@ -require zephyr-sample.inc -inherit testimage +require zephyr-kernel-src.inc +require zephyr-kernel-common.inc +inherit deploy -QEMU_BIN_PATH = "${STAGING_BINDIR_NATIVE}" +OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" -OECMAKE_SOURCEPATH = "${ZEPHYR_BASE}/${ZEPHYR_SRC_DIR}" +do_install[noexec] = "1" + +do_deploy() { + install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] + then + install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin + fi + + if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] + then + install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi + fi +} addtask deploy after do_compile -do_install[noexec] = "1" diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc index 10c25c5..5f6dea9 100644 --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-sample.inc @@ -1,22 +1 @@ -require zephyr-kernel-src.inc -require zephyr-kernel-common.inc -inherit deploy - -OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" - -do_install[noexec] = "1" - -do_deploy () { - install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf - - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] - then - install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin - fi - - if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] - then - install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi - fi -} -addtask deploy after do_compile +require zephyr-image.inc