Можно ли при помощи cmake/cpack создать пакеты, которые будут иметь отличающиеся устанавливаемые файлы
Есть проект, который собирается при помощи cmake и cpack в виде rpm и deb пакетов.
set(CPACK_GENERATOR "DEB;RPM")
В deb пакет необходимо добавить каталог, который не нужен в rpm пакете. Можно ли это как-нибудь сделать не создавая две отдельные сборки, а попытаться решить эту задачу на уровне cpack? Или воспользоваться еще каким-нибудь способом.
Есть возможность задать конфигурационный файл для cpack
set(CPACK_PROJECT_CONFIG_FILE cpack_config.cmake)
В нём можно определить, какой генератор используется для сборки:
IF (CPACK_GENERATOR MATCHES "DEB")
но в этот момент уже не получается выполнить команду install
CMake Error at cpack_config.cmake:20 (install):
Unknown CMake command "install".
Ответы (1 шт):
Автор решения: AlexBG
→ Ссылка
У Cpack есть возможность добавить в пакет дополнительный cmake проект в момент сборки:
IF (CPACK_GENERATOR MATCHES "DEB")
set(CPACK_INSTALL_CMAKE_PROJECTS "/path_to_project/build;CoolStuff;ALL;/dest_path")
ENDIF()
При этом /path_to_project/build
должен содержать файл CMakeCache.txt
.