为什么CPack会生成一个空包?

时间:2018-08-05 20:37:29

标签: cmake installer packaging cpack

存在一个创建一个控制台应用程序的cmake项目。 我将打包生成功能添加到该cmake项目中:

# ... above cmake code for one console application creation
# below code that I add:

#install
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "C:/Apps/Consolas" COMPONENT applications)

# pack
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR "MyOrg")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CPack Component Installation Example")
set(CPACK_PACKAGE_VERSION "1.0.0")

set(CPACK_GENERATOR "ZIP")

include(CPack)

程序包创建成功完成,没有任何错误(!),但程序包为空。

为什么会发生以及如何解决此问题? (我使用了cmake 3.12.0)

1 个答案:

答案 0 :(得分:1)

DESTINATION应该是程序包中的相对目录。

请考虑以下内容:

install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "bin" COMPONENT applications)

说明:将项目安装到<build-dir>/_CPack_Packages的子目录后,CPack将创建ZIP文件。通过指定绝对路径,不会在预期的子目录中安装任何文件,并且程序包将为空。