Как включить все сторонние зависимости времени выполнения в пакет, сгенерированный cmake/cpack, в Linux?

У меня есть проект С++ с парой исполняемых файлов, настроенных с помощью cmake. Обычный рабочий процесс заключается в установке всех сторонних зависимостей через диспетчер пакетов, сборке и установке пакета через cpack на том же компьютере. Теперь я хотел бы включить все зависимости времени выполнения в этот пакет, чтобы иметь возможность установить его на другом компьютере без необходимости устанавливать там сторонние зависимости, как на компьютере сборки.

Я провел много исследований в Интернете - без особого успеха. Я нашел что-то под названием BundleUtilities для cmake, но не смог найти никакой документации по этому поводу. Я даже не знаю, делает ли это то, что мне нужно.

Я хотел бы использовать преимущества cmake и создать такой «связанный» пакет без какого-либо ручного вмешательства или чего-либо еще. Я не хочу собирать и копировать сторонние зависимости вручную. Идеальным было бы чистое решение проблемы cmake/cpack.

Редактировать:

Чтобы уточнить: рассматриваемая целевая машина не имеет подключения к Интернету.


person Flo    schedule 10.04.2019    source источник


Ответы (1)


Вы действительно уверены, что хотите это сделать? Это, вероятно, не окажется хорошей идеей... упаковка сторонних инструментов фактически берет на себя ответственность за стороннее программное обеспечение, и, поскольку исходная версия неизбежно опережает то, что люди находят в ваших архивах, это может стать настоящим Головная боль. Подумайте, действительно ли вы согласны с конфликтами версий, потому что ваши зависимости установлены.

Почему бы просто не вызвать cmake системного менеджера пакетов во время настройки? Команда exec_process() запустит для вас консольные команды.

person l.k    schedule 10.04.2019