重命名 cpack 自动目标

Posted

技术标签:

【中文标题】重命名 cpack 自动目标【英文标题】:Renaming cpack automatic target 【发布时间】:2012-09-06 14:55:30 【问题描述】:

当您在CMakeLists.txt 文件中INCLUDE(CPack) 时,它会将名为package 的目标添加到生成的构建文件中。您可以对生成的目标及其运行方式进行很多配置,但我似乎无法找到更改目标本身名称的方法;即,而不是生成的Makefile 包含一个名为package 的目标,我希望它包含一个名为(例如)bundle 的目标。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

如果最外面的二进制构建目录中存在名为 CPackConfig.cmake 的包配置文件,CMake 只会添加默认的 package 目标。通过强制 CPack 模块生成不同名称的包文件,可以防止创建 package 目标:

set (CPACK_OUTPUT_CONFIG_FILE "$CMAKE_BINARY_DIR/BundleConfig.cmake")
include(CPack)

然后您可以手动添加bundle 目标:

add_custom_target(bundle
    COMMAND "$CMAKE_CPACK_COMMAND" 
    "-C" "$<CONFIGURATION>" "--config" "$CMAKE_BINARY_DIR/BundleConfig.cmake")

默认的package_source 目标也是如此。使用变量CPACK_SOURCE_OUTPUT_CONFIG_FILE覆盖默认的包配置文件名CPackSourceConfig.cmake

【讨论】:

当我尝试这种方法时,命令cmake --build . --target bundle 立即调用 cpack,而不构建目标。我想需要设置一些依赖项,但我不知道如何设置。

以上是关于重命名 cpack 自动目标的主要内容,如果未能解决你的问题,请参考以下文章