【发布时间】:2018-03-16 20:13:46
【问题描述】:
这里是 Cmake 新手,我目前正在尝试将仅考虑单一配置开发的 cmake 项目转换为可以生成 Visual Studio 文件的多配置项目。
我无法解决的问题是在 cmake 项目中存在依赖于变量 CMAKE_BUILD_TYPE 的逻辑,例如:
set(ENABLE_DEBUG TRUE)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(ENABLE_DEBUG FALSE)
)
由于对于多配置 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)
案例 2:添加预处理器标志以仅调试配置
if(ENABLE_DEBUG)
add_definitions(...)
endif()
所以我想知道是否有人有针对上述一种或两种情况的解决方法,适用于多配置 cmake 项目,即我可以在不依赖 CMAKE_BUILD_TYPE 变量的情况下指定库添加和预处理器标志。或者如果有一种特定于配置的方式来设置 ENABLE_DEBUG 而不依赖于 CMAKE_BUILD_TYPE 变量,那就更好了?
【问题讨论】:
标签: c++ visual-studio-2015 cmake multi-configuration