Движок с нуля
Справочник

Генератор

Часть CMake, которая пишет файлы для сборки. Для каждого сборщика нужен свой генератор, потому что у каждого сборщика свой формат файлов.

CMake не вызывает компилятор сам. CMake читает CMakeLists.txt и переводит его в список дел для другой программы — сборщика, а уже сборщик запускает cl.exe и link.exe. Какой это будет сборщик, определяет генератор.

Генератор — не отдельная программа, а часть самого CMake, встроенная в cmake.exe: по названию генератора CMake понимает, какие файлы писать.

Сборщик — отдельная программа, которая потом эти файлы читает. Названия у генератора и у сборщика могут совпадать (оба называются Ninja), но генератор в этом случае всё равно часть CMake, а сборщик — программа ninja.

Генератор Для какого сборщика Какие файлы пишет
Visual Studio 18 2026 MSBuild app.vcxproj, Engine.slnx
Ninja Ninja build.ninja
Unix Makefiles Make Makefile

Если генератор не указан, CMake выбирает сам. На Windows с установленной Visual Studio это генератор Visual Studio: первая строка вывода так и говорит — Building for: Visual Studio 18 2026.

Генератор запоминается в папке сборки. Чтобы сменить генератор, нужна новая папка (или удалить старую): в одной папке CMake не смешивает файлы разных сборщиков.