检查是否从CMake生成Visual Studio解决方案或Makefile

Dar*_*nas 1 c++ cmake visual-studio

如果我正在生成Visual Studio解决方案或Makefile,我怎么知道我的CMakeLists.txt?

我需要将外部项目添加到解决方案中,如下所示:

INCLUDE_EXTERNAL_MSPROJECT(cs-tests ${CMAKE_CURRENT_SOURCE_DIR}/cstests/cstests.csproj)
Run Code Online (Sandbox Code Playgroud)

但我只想在打电话时这样做

cmake .. -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 12 2013"
Run Code Online (Sandbox Code Playgroud)

不是我打电话的时候:

cmake -G "NMake Makefiles" ..
Run Code Online (Sandbox Code Playgroud)

sth*_*m58 6

MSVC即使生成器不是Visual Studio(例如Ninja在 Windows 上),也可以设置CMake变量。

要检查 CMake 生成器是否是 Visual Studio(即 msbuild),以下方法可以解决问题:

if (CMAKE_GENERATOR MATCHES "Visual Studio")
    # Do Visual Studio specific stuff
else()
    # Other stuff
endif()
Run Code Online (Sandbox Code Playgroud)


gre*_*ade 5

生成器的名称存储在CMAKE_GENERATOR.它应该包含-G选项给出的确切字符串.

MSVC变量也应该设置为TRUE,MSVC12并且MSVC_IDE(虽然我目前无法从文档中确认.)