Cmake

CMake Presets: фиксируем варианты конфигурации и сборки проекта

Одинаковая конфигурация для команды

CMakePresets.json хранит повторно используемые настройки конфигурации: генератор, каталог сборки, toolchain-файл и параметры проекта. Команда может вызывать именованный preset вместо копирования длинных команд из документации.

{
  "version": 6,
  "configurePresets": [
    {
      "name": "debug",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/debug",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "BUILD_TESTING": "ON"
      }
    }
  ],
  "buildPresets": [
    { "name": "debug", "configurePreset": "debug" }
  ]
}

Затем используйте cmake --preset debug и cmake --build --preset debug. Файл CMakeUserPresets.json предназначен для локальных настроек конкретного разработчика и обычно не добавляется в репозиторий.

Версия схемы и переносимость

Версия поля version определяет возможности формата и минимальную версию CMake, необходимую для его чтения. Выбирайте схему, которую поддерживают инструменты всей команды и CI. Пути и переменные окружения, зависящие от машины, лучше вынести в user-preset или toolchain-файл, чтобы общий preset оставался переносимым.