重命名cpack自动目标

Ern*_*ill 1 cmake cpack

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

sak*_*kra 5

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

set (CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake")
include(CPack)
Run Code Online (Sandbox Code Playgroud)

您可以手动添加bundle目标:

add_custom_target(bundle
    COMMAND "${CMAKE_CPACK_COMMAND}" 
    "-C" "$<CONFIGURATION>" "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake")
Run Code Online (Sandbox Code Playgroud)

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