添加bbappend条件任务而不覆盖配方功能

时间:2017-08-29 20:21:07

标签: yocto overrides

对于给定的例子:

现有食谱: [some-yocto-upstream-thing_1.0.bb]

do_configure_prepend () {
    <necessary logic>
}

BBCLASSEXTEND = "native nativesdk"

我正在为这个配方创建一个bbappend,它需要在调用do_configure_prepend之前调用我编写的函数。但我只想要这个函数调用class-target而不是class-native build。

我可以创建一个do_configure_prepend_class-target,但会覆盖配方版本(在类目标构建期间)。但是现有的所需逻辑将无法运行。

我可以在do_configure_prepend(通过addtask)之前创建一个要调用的自定义任务,但是这也是为class-native调用的(不需要的)。

有什么想法吗?我宁愿避免重写早期的内置任务(do_patch等),因为上游配方最终可能会定义一个,我会打破它。

1 个答案:

答案 0 :(得分:2)

不,使用

do_configure_prepend_class-target () {
    <necessary logic>
}

应该有效。对于class-targetdo_configure将由您的代码添加。

这种带覆盖的前置的一个例子是OE-Core/go.inc