gpt4 book ai didi

yocto - If else 语句在 bitbake 文件中使用外部变量

转载 作者:行者123 更新时间:2023-12-05 06:30:20 50 4
gpt4 key购买 nike

您好,在我的 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 等任务。此外,我能够确保编译任务每次都运行。

但是,我想对其进行一些限制。我想确保相关任务的 noexec 和 nostamp 仅在 DEVMODE 变量设置为 1 时适用。伪代码如下。

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 文件中实现相同的目的?我试过thisthis链接,但我无法制作一个有效的 if 条件。

注意:我可以使用 BB_ENV_EXTRAWHITE,但我无法为 bitbake 文件编写工作条件。

最佳答案

使用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'}"

关于yocto - If else 语句在 bitbake 文件中使用外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492036/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com