3
对于给定的例子:添加bbappend有条件的任务,而不覆盖配方功能
现有配方: [some-yocto-upstream-thing_1.0.bb]
do_configure_prepend() {
<necessary logic>
}
BBCLASSEXTEND = "native nativesdk"
我创建这个配方的一个bbappend需要有一个我写的函数在do_configure_prepend被调用之前被调用。但我只想要为类目标调用此函数,而不是为类本地编译。
我可以创建一个do_configure_prepend_class-target,但会覆盖配方版本(在类目标构建过程中)。但是现在所需的逻辑将不会运行。
我可以创建一个自定义任务,在do_configure_prepend(通过addtask)之前调用,但这也是类本地调用(不需要)。
任何想法?我宁愿避免只是覆盖较早的内置任务(do_patch等),因为上游配方最终可能会定义一个,我会打破它。
但是现在的yocto do_configure_prepend不会被调用,因为我在目标构建期间用do_configure_prepend_class-target替换它。这可以防止“<必要的逻辑>”运行。要清楚的是,“<必要的逻辑>”存在于yocto配方中。我正在介绍的函数包括我需要执行的其他逻辑。在这方面,你的榜样会混淆事物。 –
不,你可以在食谱中有多个'_prepend',他们都会应用。 – Anders
如果以相反方式执行操作,则会出现问题:'do_configure_class-target_prepend'。这将取消任何非'_class-target'值。 – Anders