1

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

4

1 回答 1

5

package如果名为的包配置文件CPackConfig.cmake存在于最外层的二进制构建目录中,CMake 只会添加默认目标。通过强制 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

于 2012-09-06T17:43:59.477 回答