Согласованный тип сборки в CMake и 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 я выбираю Release версия билда. А потом сделай сборку.

Я пытаюсь избежать ошибки выбора конфликтующих типов сборки в VS и CMake.

1 ответ

Решение

Во-первых, вы не меняете тип сборки, устанавливая переменную PROJECT "Освободить". Это будет сделано с переменной CMAKE_BUILD_TYPE,

CMAKE_BUILD_TYPE переменная не должна использоваться в вашем CMakeLists.txt, но вы передаете ее вызову CMake. Передается в командной строке через cmake -DCMAKE_BUILD_TYPE=Release .., Это относится только к системам сборки, которые поддерживают один тип сборки. Для систем сборки, таких как Visual Studio, вам не нужно все это. Создается несколько конфигураций, и вы выбираете тип сборки в вашей IDE (выпадающий в VS).

Дальнейшее чтение: https://cmake.org/Wiki/CMake_Useful_Variables

Другие вопросы по тегам