我的映像,用bitbake
构建,必须包含用于不同机器的不同包(例如,我需要将包package1
添加到映像中machine1
,但不适用于machine2
)。
可以添加行
IMAGE_INSTALL_append_machine1 = " package1"
到图像配方。但我不认为这是可持续的,因为IMAGE_INSTALL_append_machine1
可能会在其他一些配方中定义(不受我的控制),并且前面的定义会被后面的定义覆盖。这就是我认为Yocto项目开发手册警告使用IMAGE_INSTALL的内容。
我的担忧有效吗?在这种情况下,编写食谱的正确方法是什么?
我相信您正在寻找的功能是base_contains
此函数用于根据 第三个变量的定义。
变量
${@base_contains('variable-name', 'value', 'true-result', 'false-result',d)}"
其中:名 这是要检查的变量的名称。
值 这是要比较变量的值。
true-result 如果变量等于值,那么这就是 由函数返回。
假结果 如果变量不等于该值,则为 函数返回的内容。
还有一件事,您可以使用??=
来提供默认值。 ?=
和 ??=
之间的区别在于,对于??=
,在解析过程结束之前不会发生分配。
你可以看看这里的一个例子图像配方
http://www.embeddedlinux.org.cn/OEManual/recipes_advanced_python.html