小编rSi*_*Sir的帖子

Cmake:针对multi-config cmake项目的特定配置特定设置

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变量?

c++ cmake multi-configuration visual-studio-2015

5
推荐指数
1
解决办法
1058
查看次数