apps:
library-sample:
command: library_sample
parts:
library:
source: https://github.com/the/sample.git
plugin: cmake
当snapcraft运行cmake
安装时,“库”将安装在系统上(正如我所料)。此外,cmake
还将在samples
目录下的build
文件夹中生成测试应用程序。
我想将示例(由“部分”生成)提升为快照包中已安装的应用。
如何使用snap YAML从build
文件夹下的嵌套目录移动到快照/bin
文件夹?
答案 0 :(得分:1)
你可以利用Snapcraft的scriptlets来做到这一点。具体来说,是install
scriptlet。它们实质上允许您通过自定义构建过程的各个部分来修改构建过程的行为。在build
生命周期步骤中,snapcraft最终运行cmake && make && make install
,但make install
并未执行您希望它执行的所有操作。 install
scriptlet在make install
之后运行,因此您可以执行以下操作:
parts:
library:
source: https://github.com/the/sample.git
plugin: cmake
install: |
cp -r path/to/samples $SNAPCRAFT_PART_INSTALL/
现在使用snapcraft clean -s build
清除构建步骤并再次运行snapcraft
。然后,samples目录将以最终的快照结束。