Cmake 4.1.0 — новый релиз популярной кроссплатформенной системы сборки на C++

Вышел новый релиз кроссплатформенной системы автоматизации сборки CMake версии 4.1.0. Этот инструмент с открытым исходным кодом, разработанный на языке C++, представляет собой альтернативу Autotools и широко применяется в таких известных проектах, как KDE, LLVM/Clang, MySQL, MariaDB, Blender и ReactOS. Распространяется CMake под лицензией BSD.

CMake отличается наличием собственного простого языка описания сценариев сборки, поддержкой модульной архитектуры для расширения функциональности, системой кэширования параметров, возможностями кросс-компиляции, а также генерацией файлов сборки для различных сборочных систем и компиляторов. Кроме того, в комплект входят такие утилиты, как ctest для организации тестирования, cpack для создания установочных пакетов и cmake-gui — графический интерфейс для настройки параметров сборки.

CMake традиционно генерирует файлы Makefile, что делает его совместимым с классическим инструментом make, хотя сам по себе make уже давно не рассматривается как современная полноценная система сборки для крупных проектов. Использование make напрямую без вспомогательных инструментов и генераторов может быть крайне неудобным и непрактичным, особенно при работе в больших командах. Именно поэтому CMake и подобные ему генераторы стали стандартом де-факто при сборке сложных проектов на C и C++.

Хотя существуют альтернативы вроде Ninja, который выполняет команды на основе заранее сгенерированного compile_commands.json, их использование часто предполагает наличие внешнего генератора, такого как CMake или Bazel. При этом суммарное время подготовки сборки может оказаться выше, чем при использовании классического Makefile, созданного вручную — пусть и более трудоемкого в поддержке.

Несмотря на критику со стороны отдельных разработчиков, CMake продолжает оставаться одним из самых востребованных инструментов благодаря своей гибкости, поддержке различных платформ и зрелой экосистеме. Некоторые новые инструменты только начинают внедрять функции, которые в CMake доступны уже многие годы.

Прокрутить вверх