如何在 Bitbake 函数中为每个配方执行代码?

How to execute code for each recipe in a Bitbake function?

基本上我想在我的食谱功能中这样做:

for each recipe
    print recipe.DESCRIPTION

这怎么可能?

你可以在某个层(meta-yourlayer/classes/)创建一个bbclass,然后将它添加到配置文件(machine,distro,layer.conf中的INHERIT, local.conf).

以下内容可能具有启发性,未经测试:

python __anonymous() {
    bb.warn(d.getVar('DESCRIPTION'))
}

尽管文档指出匿名函数可能不起作用,c.f。 https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-INHERIT.

如果是这种情况,您应该在 do_fetch 之后添加一个任务(这甚至可能解决紧接着解释的“问题”)。

注意,这使得class全局继承,匿名函数在解析时执行。我不确定这对您是否真的有意义,因为所有食谱,即使是未使用的食谱,都会打印该消息。

参见 https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#inherit-configuration-directive