有时,添加一个只在调试版本中活动的选项是很方便的。当这样做的时候,记住测试像如果(WITH_DEBUG)
或如果(CMAKE_BUILD_TYPE匹配“调试”)
不按预期工作:
首先,尽管
WITH_DEBUG
是CMAKE_BUILD_TYPE =调试
,反之则不成立。第二,检查
CMAKE_BUILD_TYPE
并不是所有地方都适用。更准确地说,它会不与多配置CMake生成器一起工作(也就是说,既不是Windows与Visual Studio,也不是Mac OS X与Xcode)。
因此,在添加仅用于调试的选项时,请考虑扩展CMAKE_C_FLAGS_DEBUG
而且CMAKE_CXX_FLAGS_DEBUG
.例如:
CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DUNIV_DEBUG")
做不这样做:
IF(WITH_DEBUG) #不适用CMAKE_BUILD_TYPE=Debug, Visual Studio或Xcode ADD_DEFINITIONS(-DUNIV_DEBUG) ENDIF()