BitBake 食谱支持从其他文件中继承代码。自动搜索这些文件使得维护食谱变得更容易,但是当出现错误时,定位食谱文件中出错的继承方法可能成为挑战。类似于LSP(Language Server Protocol)的功能,用户希望能够快速跳转到其他文件定义的继承。
在 BitBake 中,用户可以使用 BBFILE_COLLECTIONS
变量指定 BitBake 所需搜索的文件集合。默认情况下,BitBake 会搜索 BBFILES
变量中指定的文件夹。但是,这可能会导致库和应用程序之间的名称冲突。通过使用 BBFILE_COLLECTIONS
,用户可以为每个代码库设置单独的文件夹,并执行更灵活和有效的搜索。
下面是一个使用 BBFILE_COLLECTIONS
的示例:
在 conf/local.conf
中指定 BBFILE_COLLECTIONS
变量。my-recipes
和 my-layers
是库的名称。my-recipes
使用了继承。
BBFILE_COLLECTIONS += "my-recipes my-layers"
BBFILE_PATTERN_my-recipes = "^${COREBASE}/../my-recipes/"
BBFILE_PRIORITY_my-recipes = "9"
BBFILE_PATTERN_my-layers = "^${COREBASE}/../my-layers/"
BBFILE_PRIORITY_my-layers = "8"
如果想要用 LSP 风格来跳转,可以考虑使用 cq。 cq 是一个命令行工具,可以在食谱中找到继承。以下是一些基本用法:
cq search inherit from