diff options
| -rw-r--r-- | meta/classes-recipe/baremetal-image.bbclass | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/meta/classes-recipe/baremetal-image.bbclass b/meta/classes-recipe/baremetal-image.bbclass index 4e7d413626..7938c0a83f 100644 --- a/meta/classes-recipe/baremetal-image.bbclass +++ b/meta/classes-recipe/baremetal-image.bbclass | |||
| @@ -30,6 +30,9 @@ BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" | |||
| 30 | IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" | 30 | IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" |
| 31 | IMAGE_NAME_SUFFIX ?= "" | 31 | IMAGE_NAME_SUFFIX ?= "" |
| 32 | 32 | ||
| 33 | IMAGE_OUTPUT_MANIFEST_DIR = "${WORKDIR}/deploy-image-output-manifest" | ||
| 34 | IMAGE_OUTPUT_MANIFEST = "${IMAGE_OUTPUT_MANIFEST_DIR}/manifest.json" | ||
| 35 | |||
| 33 | do_rootfs[dirs] = "${IMGDEPLOYDIR} ${DEPLOY_DIR_IMAGE}" | 36 | do_rootfs[dirs] = "${IMGDEPLOYDIR} ${DEPLOY_DIR_IMAGE}" |
| 34 | 37 | ||
| 35 | do_image(){ | 38 | do_image(){ |
| @@ -37,8 +40,28 @@ do_image(){ | |||
| 37 | install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.elf | 40 | install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.elf |
| 38 | } | 41 | } |
| 39 | 42 | ||
| 40 | do_image_complete(){ | 43 | python do_image_complete(){ |
| 41 | : | 44 | from pathlib import Path |
| 45 | import json | ||
| 46 | |||
| 47 | data = { | ||
| 48 | "taskname": "do_image", | ||
| 49 | "imagetype": "baremetal-image", | ||
| 50 | "images": [] | ||
| 51 | } | ||
| 52 | |||
| 53 | img_deploy_dir = Path(d.getVar("IMGDEPLOYDIR")) | ||
| 54 | |||
| 55 | for child in img_deploy_dir.iterdir(): | ||
| 56 | if not child.is_file() or child.is_symlink(): | ||
| 57 | continue | ||
| 58 | |||
| 59 | data["images"].append({ | ||
| 60 | "filename": child.name, | ||
| 61 | }) | ||
| 62 | |||
| 63 | with open(d.getVar("IMAGE_OUTPUT_MANIFEST"), "w") as f: | ||
| 64 | json.dump([data], f) | ||
| 42 | } | 65 | } |
| 43 | 66 | ||
| 44 | python do_rootfs(){ | 67 | python do_rootfs(){ |
| @@ -62,6 +85,7 @@ python do_rootfs(){ | |||
| 62 | bb.utils.mkdirhier(sysconfdir) | 85 | bb.utils.mkdirhier(sysconfdir) |
| 63 | 86 | ||
| 64 | execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) | 87 | execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) |
| 88 | execute_pre_post_process(d, d.getVar("ROOTFS_POSTUNINSTALL_COMMAND")) | ||
| 65 | } | 89 | } |
| 66 | 90 | ||
| 67 | 91 | ||
| @@ -72,6 +96,8 @@ SSTATE_SKIP_CREATION:task-image-complete = '1' | |||
| 72 | do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}" | 96 | do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}" |
| 73 | do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" | 97 | do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" |
| 74 | do_image_complete[stamp-extra-info] = "${MACHINE_ARCH}" | 98 | do_image_complete[stamp-extra-info] = "${MACHINE_ARCH}" |
| 99 | do_image_complete[sstate-plaindirs] += "${IMAGE_OUTPUT_MANIFEST_DIR}" | ||
| 100 | do_image_complete[dirs] += "${IMAGE_OUTPUT_MANIFEST_DIR}" | ||
| 75 | addtask do_image_complete after do_image before do_build | 101 | addtask do_image_complete after do_image before do_build |
| 76 | 102 | ||
| 77 | python do_image_complete_setscene () { | 103 | python do_image_complete_setscene () { |
| @@ -140,5 +166,5 @@ python(){ | |||
| 140 | else: | 166 | else: |
| 141 | deps += " %s:%s" % (dep, task) | 167 | deps += " %s:%s" % (dep, task) |
| 142 | return deps | 168 | return deps |
| 143 | d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) | 169 | d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) |
| 144 | } | 170 | } |
