Представлен релиз кроссплатформенного открытого генератора сценариев сборки 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.
Источник: http://www.opennet.ru/opennews/art.shtml?num=62974