简体   繁体   中英

Yocto: completely ignore bbappend

I am developing a multiplatform project, so it is a mix of different boards with appropriate meta layers. My meta image layer contains some bbappend recipes that are board specific although I would like to stick to single image layer repository rather than having image layer repository for each board.

So is there any way to completely hide/ignore/disable specific bbappend files?

Example: I have bblayers for var-som-* boards. For such boards I have recipes-kernel/linux-variscite_%.bbapend , so building for var-som-* boards is fine, but problem happens when I build for example for raspberry. Having variscite layer (as well as all freescale set) adds a lot of things to the image I don't want, so I am removing variscite and freescale layers and it creates No recipes available for: recipes-kernel/linux-variscite_%.bbappend error.

Luckily this question has already been answered: Yocto Dunfell error 'No recipes available for' with multiple machines in single custom meta layer

So for those, who faced the same problem here is quick summary:

  1. Within your image meta repository create a folder structure that DOES NOT match BBFILES directive.
  2. Move your .bbappend recipes there.
  3. Include recipes on per-meta-layer basis using BBFILES_DYNAMIC directive.

Example:

# thats default and commonly used way to import recipes from your image
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
            ${LAYERDIR}/recipes-*/*/*.bbappend"

# "hide" recipes "deeper" within folder structure 
# so they won't be included by ${LAYERDIR}/recipes-*/*/*.bbappend
# 
BBFILES_DYNAMIC += "\
    meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*.bbappend \
    meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*/*.bbappend \
"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM