【发布时间】:2015-06-19 11:44:12
【问题描述】:
如何为不同的 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。
【问题讨论】: