0

我对 Yocto/BitBake 还是很陌生,在试图找出在以下情况下使用本机工具的最佳方法时,我有点头疼:

  • 我有一个获取和构建第三方库和二进制文件的配方,我们称之为X
  • 我有另一个配方也可以获取和构建第三方库和二进制文件,这些依赖于X的库,我们称之为Y
  • Y需要运行安装后脚本来生成一些配置文件。
  • 这些脚本正在调用一些X的二进制文件来生成这些文件,因此我添加了对X-native的依赖,以便能够在构建机器上运行这些脚本。
  • 目前,我将这些脚本包含在do_install[postfuncs]Y -native配方中,同时将其作为依赖项添加到Y配方中,因为我希望这些文件成为Y包的一部分。

假设我在做什么,直到一切正常(如果没有,请纠正我),我的问题来了:

X的配置/编译方式包括指定它将写入它生成/管理的任何文件的路径(当前基于datadir前缀)。这意味着构建X-native还将STAGING_DIR_NATIVEX配方上下文中为该路径添加前缀。

因此,在使用Y-native配方中的X-native二进制文件后,我最终会在错误的文件中生成文件(即X配方上下文)并且无法轻松检索这些文件,因为它在Y配方上下文之外。STAGING_DIR_NATIVE

我在这里错过了什么吗?

我在创建sysroot后阅读pkg_postinst并推迟了它们,但如果我希望打包这些配置文件,这不是我所需要的,对吧?

如果没有其他解决方案,我可能会不打包它们并使用它在创建图像/ sdk时生成它们,但这对我来说似乎并不干净。

另外,我不希望修补X源以启用某种运行时输出路径配置。

4

0 回答 0