Cmake新手在这里,我目前正在尝试将仅使用单一配置开发的cmake项目转换为可以生成visual studio文件的多配置项目.
我无法解决的问题是,在cmake项目中存在依赖于变量CMAKE_BUILD_TYPE的逻辑,例如:
set(ENABLE_DEBUG TRUE)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(ENABLE_DEBUG FALSE)
)
Run Code Online (Sandbox Code Playgroud)
由于对于多配置cmake,CMAKE_BUILD_TYPE为空,这种方式不起作用.然后变量ENABLE_DEBUG在cmake项目中用于以下内容:
案例1:添加库仅调试配置
if(ENABLE_DEBUG)
list(APPEND LIB_SRC src/lib_debug.cpp)
endif()
add_library(LIB OBJECT LIB_SRC)
Run Code Online (Sandbox Code Playgroud)
情况2:将预处理程序标志添加到仅调试配置
if(ENABLE_DEBUG)
add_definitions(...)
endif()
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有人为上述一个或两个案例都有一个解决办法,可以用于多配置cmake项目,即我可以指定库添加和预处理器标志,而不依赖于CMAKE_BUILD_TYPE变量.或者更好的是,如果有一个特定于配置的方式设置ENABLE_DEBUG而不依赖于CMAKE_BUILD_TYPE变量?