我正在使用cmake 2.8.12.2。我已设置CMAKE_DEBUG_POSTFIX
,它会自动与add_library
命令一起使用。但它不会自动与add_executable
命令一起使用。我发现我可以设置DEBUG_POSTFIX
目标属性以将调试后缀添加到可执行文件名中,但这需要使用附加命令。
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
第二个命令是否明确设置了所需的DEBUG_POSTFIX
目标属性,还是有更简单的方法?
答案 0 :(得分:11)
set_target_properties州的当前cmake文档
还有一个
<CONFIG>_OUTPUT_NAME
可以在每个配置的基础上设置输出名称。<CONFIG>_POSTFIX
在命名方式(在大写字母中,例如“DEBUG_POSTFIX”)构建时,为目标的真实名称设置后缀。当目标创建为变量CMAKE_<CONFIG>_POSTFIX
的值时,将初始化此属性的值(可执行目标除外,因为早期的CMake版本没有将此变量用于可执行文件)。
因此,似乎突出了cmake在可执行文件名称中不使用CMAKE_DEBUG_POSTFIX
的值这一事实。因此
add_executable(myexe ${SOURCE_FILES})
set_target_properties(myexe PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
在构建${CMAKE_DEBUG_POSTFIX}
配置的myexe
目标时,将使用全局变量DEBUG
的值。
请注意,此问题的一位评论者对变量${PROJECT_NAME}
的使用感到困惑。使用myexe
时,此变量自动设置为project(myexe)
。使用${PROJECT_NAME}
相当于myexe
,可以更轻松地复制/粘贴到新的CMakeLists.txt。
答案 1 :(得分:0)
请注意,如果您的项目中有许多子可执行文件,那么值得查看CMAKE_EXECUTABLE_SUFFIX。在针对特定构建(发布/调试)运行CMake时,需要更改此情况下的变量,但此后缀会自动附加到每个ADD_EXECUTABLE(...) - 调用可执行文件名称。使用CMake 2.8.12.2和3.0.2进行测试和验证