现在你的程序以及基本完成了,你希望将你的程序分享给不同的人使用。我们希望能够为不同的平台提供二进制程序和源分发。这和之前第三节所提到的install有些不同,在这一节我们希望安装已经构建好的源程序。在这个例子中,我们将构建支持二进制安装和包管理的安装包,如cygwin, debian, RPMs等。因此我们需要在使用CPack来创建与平台相关的安装程序。我们需要在工程顶层目录的MakeLists.txt文件的尾部添加如下内容:
# build a CPack driven installer package
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模块,它会使用这些变量和系统的一些其它属性来设置安装程序。
下一步,你只要构建该工程,并在工程的build目录下使用CPack工具来构建一个binary distribution,命令如下:
cpack --config CPackConfig.cmake
创建一个source distribution
cpack --config CPackSourceConfig.cmake