【发布时间】:2022-01-06 10:56:37
【问题描述】:
我有一个与 vardeps 相关的问题,我正在执行一项依赖于某些变量的任务。
我创建了一些新变量,例如NEW_VARIABLE,将它们添加到BB_ENV_EXTRAWHITE。在一些食谱中,我编写了我自己的一些任务的实现,这些任务依赖于这些新变量,并且为了使这种依赖能够正常工作,我添加了例如do_install[vardeps] = "NEW_VARIABLE",所以我现在期待每次我更改这个NEW_VARIABLE 并执行例如,bitbake recipename,do_install 任务应该运行。我检查了任务签名,我在那里看到了NEW_VARIABLE。
让我们假设这个变量有两个可能的值。当我第一次设置变量“value1”,即第一次构建时,一切正常,没有问题。当我将其值更改为之前未使用的另一个值“value2”并再次构建配方时,do_install 也将运行并且不会出现问题。但是,问题是,如果我再次将变量设置为旧值“value1”,然后再次执行bitbake recipename。 do_install 不会被重新触发,这会导致位于work 目录中的一些错误/旧数据,并且还会在图像中产生。
我尝试设置BB_DONT_CACHE,正如我在一个老问题中所理解的那样,问题可能是需要再次解析配方,但这根本不起作用。
我不想在执行新构建时总是运行任务,即do_install[[nostamp] = "1",所以不能考虑这个解决方案。我只是希望它在每次更改 NEW_VARIABLE 时再次运行。
我所期待的行为是否正常?还是 Yocto 不能这样工作?
【问题讨论】: