如果我们想要把自己的工程释放给别人使用,想在多个不同的平台同时提供二进制和源码包。我们将使用CPack来创建特定平台的安装器。
那么我们将按照下面的方法进行构建:
1. 在顶层的CMakeLists.txt的末尾添加一些代码
include(InstallRequiredSystemLibraries)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set(CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
include(CPack)
其中InstallRequiredSystemLibraries
会将当前平台需要的运行时包含进来。
然后我们设置了一些CPack的参数,比如在哪里存储license和版本信息。
最后我们包含CPack模块,这个模块会使用我们设置的Cpack变量以及其他一些当前系统的属性来生成一个安装器。
2. 构建项目,然后运行cpack生成一个二进制发布包
cpack
cpack有一些配置选项,比如想生成指定的格式,使用-G。指定打包哪一种构建使用-C,或者想创建一个源码发布包,使用–config
cpack -G ZIP -C Debug
cpack --config CPackSourceConfig.cmake
运行结束后就可以运行安装好的应用程序来验证是否安装成功。