snapcraft 使插件改变目录?

snapcraft 使插件改变目录?

我从 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

相关内容