diff mbox series

[meta-zephyr,1/2] zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample

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

Commit Message

Peter Hoyes Sept. 30, 2022, 4:34 p.m. UTC
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>
---
 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(-)

Comments

Jon Mason Sept. 30, 2022, 6:57 p.m. UTC | #1
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 mbox series

Patch

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