CMake教程07-打包安装程序

CMake教程07-打包安装程序

接下来假设我们要将我们的项目分发给其他人,以便他们可以使用它。

我们希望在各种平台上提供二进制和源代码分发。这与我们之前在中进行的安装略有不同,在那里我们安装了从源代码构建的二进制文件。

在这个例子中,我们将构建支持二进制安装和包管理功能的安装包。为此,我们将使用CPack来创建特定于平台的安装程序。

具体来说,我们需要在项目根目录的CMakeLists.txt文件底部添加几行:

include(InstallRequiredSystemLibraries)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
include(CPack)

我们首先包括 InstallRequiredSystemLibraries. 该模块将包括当前平台项目所需的任何运行时库。

接下来,我们将一些 CPack 变量设置为我们存储此项目的许可证和版本信息的位置。版本信息已在本教程的前面设置,并且license.txt已包含在此项目根目录中。

最后我们引入CPack模块,它将使用这些变量和当前系统的一些其他属性来设置安装程序。

下一步是以通常的方式构建项目,然后运行 cpack可执行程序。要构建二进制分发版,请从二进制目录运行:

cpack

或者运行:

make package

要指定生成器,请使用该-G选项。对于多配置构建,用于 -C指定配置。例如:

cpack -G ZIP -C Debug

要创建源代码分发,输入:

cpack --config CPackSourceConfig.cmake

现在可以执行安装程序FirstProject--Linux.sh或者压缩包文件,验证安装程序是否可以正确执行吧。

安装成功后目录结构:

FirstProject--Linux
├── bin
│   └── first_app
├── include
│   ├── config.h
│   └── myfunc.h
└── lib
    └── libmyfunc.a

转载本文时请注明出处及本文链接地址CMake教程07-打包安装程序

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注