重命名 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 自动目标的主要内容,如果未能解决你的问题,请参考以下文章

Linux 重命名文件

Xcode 6如何重命名复制的目标

word文档在重命名时提示:源文件名和目标文件名相同。不能重命名,这是怎么回事。

如果目标文件不存在,则在 Node.js 中异步重命名文件

重命名带有空格的文件的bash错误-mv目标不是目录

如何在生成文件中动态重命名目标文件