Релиз сборочной системы CMake 4.1.0

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

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

Основные изменения:

  • В cmake-configure-log обеспечен вывод событий из команд find_package(), find_path(), find_file(), find_library() и find_program() при их первом вызове, когда результат меняет статус с “не найден” на “найден”.
  • В команду cmake_pkg_config() добавлена поддержка подкоманд IMPORT и POPULATE для работы с зависимостями на базе pkg-config.
  • Добавлена переменная CMAKE_FIND_REQUIRED, выставляющая режим REQUIRED в командах find_package(), find_path(), find_file(), find_library() и find_program(). Для игнорирования значения переменной в командах может применяться ключевое слово OPTIONAL.
  • В модулях FindBLAS и FindLAPACK реализована поддержка NVPL (NVIDIA Performance Libraries).
  • В операциях string(REGEX MATCHALL), string(REGEX REPLACE) и list(TRANSFORM REPLACE) реализована поддержка метки начала (“^”) в регулярных выражениях.
  • Выражение генератора TARGET_PROPERTY теперь охватывает свойства LINK_LIBRARIES и INTERFACE_LINK_LIBRARIES.
Release. Ссылка here.