yocto - 使用 bitbake SRC_URI 文件 ://fetcher 从解压的源树中剥离基本路径

标签 yocto bitbake

说明书here说有一个 basepath选项 SRC_URI这应该“在解包时从源路径中剥离指定的目录”。

我正在尝试从本地目录中获取源代码,例如 /src/someproject .
为此,我按如下方式配置了我的食谱:
SRC_URI="file:///src/someproject;subdir=source;basepath=/src/someproject"
目的是让来源取自 /src/someproject 目录并放入 build/tmp/work/target/someproject/1.0-r1/source/ .相反,我正在获取来源 build/tmp/work/target/someproject/1.0-r1/source/src/someproject .

有没有办法摆脱/src/someproject里面的子目录source ?

最佳答案

您指向的文档适用于 2014 年 4 月发布的 yocto 1.6。basepath参数似乎已在以后的版本中删除,没有大张旗鼓,也没有明显的替换。
相反,您可以执行以下操作:

SRCDIR = "/path/to/your/files"
SRC_URI = "file://${SRCDIR}/contents/;subdir=src"
S = "${WORKDIR}/src"
然后您就可以在 ${S}/${SRCDIR} 下访问您的文件.
如果您发现使用 ${SRCDIR}部分太麻烦,可以勾上do_patch目标,需要 prefunc机制而不是 _prepend如果你想使用 shell 脚本,如 do_patch否则用python编写:
relocate_source() {
  mv ${S}/${SRCDIR}/* ${S}/
  rmdir ${S}/${SRCDIR}
}
do_patch[prefunc] += "relocate_source"
这将在应用您可以添加到 SRC_URI 的任何补丁之前重新组织您的源代码。 .
还要注意一个 file:// URI 未缓存在 ${DL_DIR} 中,所以没有名称冲突要处理(我们需要在 downloadfilename= URI 中使用 http:// 的方式)。

关于yocto - 使用 bitbake SRC_URI 文件 ://fetcher 从解压的源树中剥离基本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451961/

相关文章:

x11 - 如何使用 Yocto Project 工具更改窗口管理器?

linux - Yocto bitbake 脚本不显示 echo 语句

linux - 如何在 Arago 项目构建中为配方编写自己的包

python - 构建 python 包

visual-studio-code - yocto SDK 与 VSCode 集成

c - yocto 项目中的 do_rootfs 函数失败

git - Bitbake (Yocto) git fetch URI 认证

c - OpenGL ES 在 headless 嵌入式 Linux 平台中的使用

yocto - Bitbake 目标列表

linux - yocto/bitbake 构建尝试将文件更改为 root 并失败