Yocto 添加bbappend条件任务而不重写配方函数

Yocto 添加bbappend条件任务而不重写配方函数,yocto,overriding,Yocto,Overriding,对于给定的示例: 现有配方: [some-yocto-upstream-thing_1.0.bb] do_configure_prepend () { <necessary logic> } BBCLASSEXTEND = "native nativesdk" do\u configure\u prepend(){ } BBCLASSEXTEND=“本机nativesdk” 我正在为这个配方创建一个bbappend,它需要在调用do_configure_prepend之

对于给定的示例:

现有配方: [some-yocto-upstream-thing_1.0.bb]

do_configure_prepend () {
    <necessary logic>
}

BBCLASSEXTEND = "native nativesdk"
do\u configure\u prepend(){
}
BBCLASSEXTEND=“本机nativesdk”
我正在为这个配方创建一个bbappend,它需要在调用do_configure_prepend之前调用我编写的函数。但我只希望为类目标调用此函数,而不是为类本机构建调用此函数

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

我可以创建一个自定义任务,在do_configure_prepend(通过addtask)之前调用它,但是对于类native也会调用它(不需要)

有什么想法吗?我更愿意避免只覆盖早期的内置任务(do_补丁等),因为上游配方最终可能会定义一个,我会破坏它。

否,使用

do_configure_prepend_class-target () {
    <necessary logic>
}
do\u configure\u prepend\u class-target(){
}
应该有用。对于
class target
do\u configure
将由您的代码前置


中有这样一个带有覆盖的前置器的示例。

但是现有的yocto do_configure_前置器将不会被调用,因为在目标构建期间,我将用do_configure_prepend_class-target替换它。这会阻止“”运行。需要明确的是,yocto配方中存在“”。我要介绍的函数包括我需要执行的附加逻辑。在这方面,你的例子有点让人困惑。不,你可以在一个配方中有多个
\u prepend
,它们都适用。如果你用另一种方式来做,你会遇到问题:
配置\u class-target\u prepend
。这将抵消所有非
\u类目标值。