我想根据图像类型(发布或调试)更改一些配方的行为。最好的方法似乎是在 local.conf 中设置一个标志。它正在工作,但我必须创建两个构建目录,一个用于发布,另一个用于调试模式。因为所有变量和配置都是相同的,所以我认为最好将其余配置写入一个 local.conf 并让另一个仅包含它,但到目前为止似乎包含/要求不起作用:
我的本地.conf:
include './meta-switch/recipes-protocols/routing/routing.inc'
...
Bitbake 结果:
ERROR: ParseError in 'build/conf/local.conf': not a BitBake file
除非您自动进行设置,否则不建议包含相关文件。
让我介绍另一种处理您需要的方法。
使用新功能
multiconfig
您可以实现这一目标。 multiconfig
功能通常用于不同的 MACHINE
构建,但您可以根据自己的情况尝试一下。这可能适合您,因为定义新的配置文件将添加到默认配置文件,即 local.conf
,这就是您想要的,这里是一个示例:
multiconfig
文件夹:`-- meta-custom/
`-- conf/
`-- multiconfig/
|-- release.conf
`-- debug.conf
例如,在
release.conf
中:
SOME_VARIABLE = "release"
对于
debug.conf
:
SOME_VARIABLE = "debug"
现在,在您的
local.conf
中添加:
BBMULTICONFIG = "release debug"
这样 Bitbake 就会知道有 3 种可能的配置:
local.conf
release.conf
debug.conf
现在,假设您有一个依赖于
custom-image
的图像 SOME_VARIABLE
,以便了解要应用于某些包的配置,或者根据该变量或新 .conf
中可以拥有的其他变量执行您想要执行的操作文件,或者说您根据每个配置配置一些食谱,例如:
release.conf
SOME_VARIABLE = "release"
SOME_OTHER_VARIABLE:append:pn-some-package = " some_var"
你说出它的名字。
现在,您可以为每个配置构建图像,如下所示:
bitbake mc:release:custom-image
bitbake mc:debug:custom-image
您可以测试每个配置的
SOME_VARIABLE
是否发生变化:
bitbake-getvar -r mc:release:custom-image --value SOME_VARIABLE
bitbake-getvar -r mc:debug:custom-image --value SOME_VARIABLE
这样您就实现了以下目标:
local.conf
变得更简单BBMULTICONFIG