Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 4.0.0, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.
CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.
Основные изменения:
- Прекращена совместимость с версиями CMake до выпуска 3.5. При привязке к неподдерживаемым версиям в функциях cmake_minimum_required() и cmake_policy() теперь будет выводиться ошибка.
- Добавлена переменная окружения "CMAKE_POLICY_VERSION_MINIMUM" для переопределения минимальной версии CMake, функциональность которой необходима для сборки проекта. Добавленная переменная позволяет обойтись без изменения вызовов cmake_minimum_required(VERSION) и cmake_policy(VERSION) в самом проекте, например, для настройки политики версий в проектах, не предусматривающих такую возможность.
- В выражение генератора "$‹PATH›" добавлена операция "NATIVE_PATH" для преобразования файлового пути из представления CMake (для разделения каталогов всегда используется "/"), в системный путь (в Unix-подобных системах используется "/", а в Windows - "\").
- На платформе macOS при использовании генераторов сборочных сценариев на базе инструментария Ninja и генераторов Makefile, если в каталоге "/usr/bin" присутствует компилятор, то он отныне оставляется как есть, без привязки к компилятору в Xcode. При сборке для платформы macOS по умолчанию прекращён выбор SDK и передача компилятору фага "-isysroot" (SDK теперь выбирает сам компилятор, а не CMake).
- Добавлено свойство LINK_WARNING_AS_ERROR, при котором предупреждения компоновщика будут трактоваться как ошибки. Для отключения действия данного свойства добавлена опция командной строки "--link-no-warning-as-error".
- В утилиту cmake добавлена опция "--project-file" для задания альтернативного имени файла CMakeLists.txt.
- В генератор CPack добавлена возможность создания несжатых tar-архивов.
- В команду target_link_libraries() и переменные CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* добавлена поддержка префикса "LINKER:".
- Добавлены новые переменные:
- Добавлены новые свойства: DEBUGGER_WORKING_DIRECTORY и VS_SOLUTION_ITEMS (для прикрепления файлов к .sln для Visual Studio).
- Обеспечено формирование готовых сборок CMake для SunOS для архитектур sparc64 и x86_64.
Источник: https://www.opennet.ru/opennews/art.shtml?num=62974