说明书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/