如何在CMake中实现仅Visual Studio Debug配置触发add_custom_command
实现方案
有两种常用的可实现需求的写法:
方法1:使用CONFIGURATIONS参数(更直观)
直接在add_custom_command中添加CONFIGURATIONS Debug配置项,仅会在Debug模式构建时触发执行:
add_custom_command(TARGET ProjectName POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "SRC" "DEST" CONFIGURATIONS Debug COMMENT "My Custom message" )
这个参数对Visual Studio这类多配置生成器原生适配,不需要额外处理其他配置的兼容逻辑。
方法2:使用生成器表达式(更灵活)
如果需要更复杂的条件组合,可以用CMake生成器表达式包裹执行命令:
add_custom_command(TARGET ProjectName POST_BUILD COMMAND $<$<CONFIG:Debug>:${CMAKE_COMMAND} -E copy_directory "SRC" "DEST"> COMMENT "My Custom message" )
注意事项
- 代码中的
SRC、DEST请替换为实际的源目录、目标目录路径,路径包含特殊字符或空格时需保留引号包裹 - 两种写法对单配置生成器(比如Makefile)同样生效,会根据构建时指定的
CMAKE_BUILD_TYPE判断是否执行命令
内容的提问来源于stack exchange,提问作者Anant Gupta
相关产品推荐
相关产品推荐

