CMake 和 Visual Studio 中一致的构建类型

Consistent build type in CMake and Visual Studio

是否可以将构建类型 (Debug, Release) 从 Visual Studio 传递给 CMake?目前我正在分两步手动执行此操作:

  1. 将项目顶层目录中的CMakeLists.txt文件修改为:

    cmake_minimum_required (VERSION 3.1.0)
    set (MyConfig Release)
    set (PROJECT myProject)
    ...
    
  2. 从 Visual Studion 下拉菜单中,我 select Release 构建版本。然后进行构建。

我试图避免在 VS 和 CMake 中选择冲突的构建类型的错误。

首先,您不会通过将变量 PROJECT 设置为 "Release" 来更改构建类型。这将通过变量 CMAKE_BUILD_TYPE.

完成

CMAKE_BUILD_TYPE 变量不应在您的 CMakeLists.txt 中使用,但您将其传递给 CMake 调用。它通过 cmake -DCMAKE_BUILD_TYPE=Release .. 在命令行上传递。这仅与支持单一构建类型的构建系统相关。 对于构建系统,例如 Visual Studio 中的构建系统,您不需要全部。创建了多个配置,您 select 在 IDE 中构建类型(在 VS 中下拉)。

进一步阅读:https://cmake.org/Wiki/CMake_Useful_Variables#Compilers_and_Tools