Как указать различные установочные префиксы для разных CPACK_GENERATOR?CPack/CMake: разные установочные префиксы на CPACK_GENERATOR
Например:
- пакет DEB должен быть установлен в
/opt/project
- архив TGZ должен состоять только из каталога
project
Из documentation я понял, что я должен был бы используйте переменную CPACK_PROJECT_CONFIG_FILE
. Используя это, можно достичь желаемой цели. Однако это не сработало для меня.
Это моя конфигурация CPack:
set(CPACK_GENERATOR "DEB;TGZ")
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_SOURCE_DIR}/cmake/package.linux.txt)
И это мой ${CMAKE_SOURCE_DIR}/cmake/package.linux.txt
файл:
IF (CPACK_GENERATOR MATCHES "DEB")
set(CPACK_NATIVE_INSTALL_DIRECTORY "/opt")
set(CMAKE_INSTALL_PREFIX "/opt")
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt")
set(CPACK_INSTALL_DIRECTORY "/opt")
ELSEIF(CPACK_GENERATOR MATCHES "TGZ")
set(CPACK_NATIVE_INSTALL_DIRECTORY "")
set(CMAKE_INSTALL_PREFIX "")
set(CPACK_PACKAGING_INSTALL_PREFIX "")
set(CPACK_INSTALL_DIRECTORY "")
ENDIF()
Я убедился, что все файлы будут анализироваться с использованием MESSAGE()
директив, но префикс моих пакетов всегда /usr/local
.