如何从CMake创建Visual Studio 2015解决方案

问题描述 投票:0回答:1

我们已经准备好与QT Creator之类的IDE一起使用的CMakeList.txt,因此一些团队成员正在使用两种不同的解决方案,一种用于Release,另一种用于Debug。

我想使用Visual Studio 2015,因此我需要考虑两种配置(发布和调试)创建一个单一的解决方案。如何正确设置不同的配置标志?

现在,CMakeList文件如下所示:

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    message("Debug Build")
    set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /wd4996 /wd4251 /wd4275 /wd4267 /GR /EHsc /MP")

else()
    message("Release Build")
    set(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /WX /W3 /wd4996 /wd4251 /wd4275 /wd4267 /GR /EHsc /MP /Ox")
endif()

所以我只能创建一个添加-D CUSTOM_BUILD_TYPE = ReleaseDebug的解决方案。我想生成一个解决方案,然后从VS决定编译为Debug或Release。

c++ visual-studio-2015 cmake
1个回答
2
投票

Visual Studio是一个多配置生成器,因此您可以轻松在Release和Debug之间切换。无需使用CUSTOM_BUILD_TYPE参数。此外,CMake还提供generator expressions(例如$<$<CONFIG:Debug>: ... >)来设置特定于配置的选项,例如您的示例中的那些选项。这些标志在Release和Debug之间看起来非常相似,因此您可以使用生成器表达式来简单地添加额外的Release标志。

不建议手动操作CMAKE_CXX_FLAGS变量。使用target_compile_options()设置这些标志会更安全,更清洁:

target_compile_options()
© www.soinside.com 2019 - 2024. All rights reserved.