bitbake如何在构建过程中搜索配方



我想知道在构建过程中,bitbake是如何搜索配方的?例如我有一个食谱如下:

DESCRIPTION = "PetaLinux GSTREAMER supported packages"
inherit packagegroup
GSTREAMER_PACKAGES = " 
gstreamer1.0 
gstreamer1.0-python 
gstreamer1.0-meta-base 
gstreamer1.0-plugins-base 
gstreamer1.0-plugins-good 
gstreamer1.0-plugins-bad 
gstreamer1.0-rtsp-server 
gst-shark 
gstd 
gst-perf 
gst-interpipes 
"
GSTREAMER_PACKAGES_append_zynqmp = " gstreamer1.0-omx"
RDEPENDS_${PN} = "${GSTREAMER_PACKAGES}"

当我在yocto层中搜索gstreamer1.0相关配方时,我发现了两个配方,其中一个是meta层中的gtreamer1.0_1.16.1.bb,另一个是meta-petanux中的gstreamer 1.0_%.bbappend

这两个层都被添加到BBLAYERS.conf文件中的BBLAYERS中,并且在相关层的layer.conf文件中用BBFILE_PRIORITY_*指定的优先级是相同的。

所以,在这种情况下,构建过程中将使用哪个配方?yocto中的配方查找规则是什么?

我改变了一些东西来理解这种行为:例如,

  1. 我输入了无效的github URL,该URL在gstreamer1.0_%.bbappend配方中指定。当我尝试构建linux系统时,遇到了一个错误。那很好
  2. 然后,我更正了该配方中的github URL,并输入了gstreamer1.0_1.16.1.bb配方中指定的无效源代码地址。当我尝试构建linux系统时,这个过程成功地完成了
  3. 然后我增加了meta层的优先级。在这种情况下,我本应该遇到一个错误,但再次构建过程成功完成

你能帮我理解这种行为吗?

谢谢。

您有两个不同的文件:.bb.bbappend

.bb是一个(或多个(包的基本配方。它通常描述如何在包中为目标获取、配置、编译和安装文件。

.bbappend文件是一个"附加"文件。它允许一个meta(这里是meta-petalinux(在不复制的情况下修改另一个meta中的现有配方。.bbappend可以修改bb文件的任何步骤:源获取、配置、编译、安装。。。

例如,你可以创建你自己的Gstreamer的bbappend,以启用pango(在我的Yocto上默认取消取消(。bbappend文件名为gstreamer1.0-plugins-base_%.bbappend,仅包含PACKAGECONFIG_append = "pango"

Yocto手册可以在这里为您提供关于bbappend文件的更多信息。

最新更新