以下是我尝试使用CMake 2.8.2重现问题的设置:
/test.sh:
/CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
SET(CPACK_PACKAGE_NAME test)
SET(CPACK_PACKAGE_VERSION 1.0)
LIST(APPEND CPACK_GENERATOR RPM)
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "test.sh")
INCLUDE(CPack)
然后:
mkdir build && cd build && cmake .. && make package
结果:
CPackRPM:警告:CPACK_RPM_POST_INSTALL_SCRIPT_FILE不存在 - 忽略
如何让构建系统知道我的文件test.sh?
答案 0 :(得分:7)
您需要使用绝对路径:
SET(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/test.sh")
这是必需的,因为CPackRPM需要文件的绝对路径,因为CPack不知道test.sh
是相对于源树的。