我可以获得 .bbappend 文件的路径吗?

Can I get the path of a .bbappend file?

我在自定义 Yocto Project 层(和单独的 repo)中有一个 .bbappend 文件。

我想将有关我的自定义层的信息(例如 git 我的自定义 repo/layer 的内容)放在此 .bbappend 修改的文件中。

来自此 .bbappend 的 运行 的任何命令都是 运行 就好像来自它附加到的 .bb 文件一样(.bb 在另一层和 repo as recommended)。

我认为运行宁VAR := "stuff ${OTHER_VAR} more"可能会有一些希望,some documentation说是"immediate variable expansion"也就是"expanded at time of parsing this line"。不幸的是,看起来附加发生在解析之前。

我喜欢 .bbappend 的分隔方面,但还没有找到一种方法来引用 .bbappend 本身,或者是否有其他方法可以从 git 获取信息原始层。有什么想法吗?

您可以通过下面的demo来演示立即展开。编辑 meta-yocto/recipes-core/busybox/busybox_%.bbappend 作为标准 Yocto 项目参考设置的一部分提供并添加:

SOMEVAR := "${@bb.warn("${FILE}")}"

如果您随后 运行 "bitbake -p" 重新解析元数据,它将显示:

警告:/meta-yocto/recipes-core/busybox/busybox_%.bbappend

显示文件被解析时是 运行。这就是为什么您有时会看到像这样的技巧:

FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:

也在那个bbappend中。这会将该层中的一个目录添加到文件的搜索路径中,然后可以覆盖该层中的主要配方。