Как сделать вывод оснастки "parts:" доступным для "apps:"?
apps:
library-sample:
command: library_sample
parts:
library:
source: https://github.com/the/sample.git
plugin: cmake
Когда Snapcraft запускает cmake
установить, "библиотека" будет установлена в системе (как я и ожидал). Также, cmake
также создаст тестовое приложение в samples
папка под build
каталог.
Я хотел бы рекламировать образец (созданный "part") как установленное приложение в пакете snap.
Как использовать оснастку YAML для перемещения из вложенного каталога под build
папка, в защелках /bin
папка?
1 ответ
Вы можете сделать это, используя скриптлеты Snapcraft. В частности, install
скриптлет. По сути, они позволяют изменять поведение процесса сборки, настраивая его разделы. в build
шаг жизненного цикла, Snapcraft по существу работает cmake && make && make install
, но make install
не делает все, что вы хотите. install
скриптлет запускается сразу после 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
снова. Тогда каталог сэмплов окажется на последнем снимке.