Yocto 添加bbappend条件任务而不重写配方函数
对于给定的示例: 现有配方: [some-yocto-upstream-thing_1.0.bb]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之
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类目标值。