Как автоматизировать сборку проекта CMake с настройками json через MSVS?

#visual-studio #cmake #automation

#visual-studio #cmake #автоматизация

Вопрос:

Обычные решения MSVC (.sln) могут быть собраны (легко отлаживаются выпускаются) через MSBuild — просто файл .sln с ключом конфигурации должен быть передан в MSBuild.

Теперь у меня есть файл проекта CMake (CMakeLists.txt ) с соответствующим файлом настроек (CMakeSettings.json). Это хорошая связка при использовании MSVC в ручном режиме.

Но как вышеописанная сборка cmake (Debug Release CMakeSettings.json) может быть автоматизирована?

Комментарии:

1. Я обнаружил, что обработка CMake в Windows (и macos) недостаточно сложна для нашей системы сборки и автоматизации, поэтому мы просто удалили cmake и вернулись к файлам решений.

Ответ №1:

Вот руководство о том, как это работает в VS 2019, если вы откроете CMakeLists.txt файл из VS, он попытается выполнить сканирование и использует его с некоторыми другими файлами в качестве файла проекта. Это не сильно отличается от стандартных решений, просто используются некоторые другие файлы.

CMake и Visual Studio 2019

Комментарии:

1. Описано, как создать решение вручную с помощью IDE. В моем случае я ищу способ, как собрать его из командной строки без IDE. Потому что я хочу автоматизировать все сборки без какой-либо ручной работы.

Ответ №2:

Обратите внимание, что в VS2019 правильный способ сделать это — использовать CMakePresets.json, а затем вы можете создать CI с помощью cmake из cmd.exe . CMakeSettings.json устарел. Чтобы включить их поддержку, есть опция, которую необходимо включить. Смотрите эту ссылку https://learn.microsoft.com/en-us/cpp/build/cmake-presets-vs?view=msvc-160 для получения дополнительной информации.

tl;dr Для сборки из командной строки выполните следующие действия:

 cmake --preset "configurePreset-name"
cmake --build --preset "buildPreset-name"