Как указать разные префиксы установки для разных CPACK_GENERATOR?
Например:
- пакет DEB должен быть установлен в
/opt/project
- архив TGZ должен состоять только из каталога
project
Из документации я понял, что мне придется использовать переменная 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
.