嗨,在我的bitbake文件下,我想停止执行某些任务,并希望每次都执行编译功能。为此,我做了以下更改。
do_compile[nostamp] = "1"
do_clean[noexec] = "1"
do_cleanall[noexec] = "1"
do_cleansstate[noexec] = "1"
do_fetch[noexec] = "1"
do_patch[noexec] = "1"
do_unpack[noexec] = "1"
它工作得很好。我能够停止执行诸如clean,cleanall,cleansstate,fetch,patch和unpack等任务。另外,我能够确保每次都执行编译任务。
但是,我想对它进行一些限制。我要确保仅当 DEVMODE 变量设置为1时,相关任务的noexec和nostamp才适用。 Psuedo代码如下。
if DEVMODE == 1 then
do_compile[nostamp] = "1"
do_clean[noexec] = "1"
do_cleanall[noexec] = "1"
do_cleansstate[noexec] = "1"
do_fetch[noexec] = "1"
do_patch[noexec] = "1"
do_unpack[noexec] = "1"
endif
如何在bitbake文件中实现相同的目的?我已经尝试过this和this链接,但是如果有条件,我将无法正常工作。
注意:可以使用BB_ENV_EXTRAWHITE很好,但是无法对bitbake文件的条件进行编码。
答案 0 :(得分:0)
使用python anonymous function可能对您有用。
python () {
#add "export DEVMODE=1" under conf/setenv
#add DEVMODE under BB_ENV_EXTRAWHITE variable under conf/setenv
if d.getVar("DEVMODE", True) == "1":
d.setVarFlag("do_compile", 'nostamp', "1")
}
或直接设置:
do_compile[nostamp] = "${@'1' if d.getVar('DEVMODE') == '1' else '0'}"