我从 github 上拉取了一个项目,该项目的子文件夹中有多个用于不同实例(针对不同的目标体系结构)的 src 文件夹。在所需的实例子文件夹中运行时,它会使用 make 进行构建。
如何让 snapcraft 在正确的目录中运行 make(我不能只拉下该目录,因为顶层也有通用的 src 文件)
当前 yaml:
parts:
base:
plugin: make
source: git://github.com/myproject.git
答案1
好问题。
虽然您无法在 YAML 中进行架构检测,但您可以告诉插件使用源的子目录而不是根目录。因此,只要您可以根据要构建的架构手动更改该子目录,就可以了。
假设您要克隆的项目的布局如下所示:
/:
subdir1:
Makefile
subdir2:
Makefile
我们还假设你只对构建感兴趣subdir1
。以下是摘录自snapcraft help sources
:
源子目录:
(细绳)
要进入并构建的存储库或 tarfile 中的源目录。
因此,你可以像这样使用 YAML 来制作你想要的东西:
parts:
base:
plugin: make
source: git://github.com/myproject.git
source-type: git
source-subdir: subdir1
这将导致make
/make install
从 subdir1 运行。请注意,这适用于任何支持该source
选项的插件。
编辑:
确实,正如 sergiusens 在评论中指出的那样,snapcraft help make
阅读很有用,并指出了另一个可能的答案:
parts:
base:
plugin: make
source: git://github.com/myproject.git
source-type: git
makefile: subdir1/Makefile
这导致make
/make install
被调用-f subdir1/Makefile