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

Представлен релиз кроссплатформенного открытого генератора сценариев сборки 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:».

  • Добавлены новые переменные:
    • CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,

    • CMAKE_‹LANG›_LINK_MODE,
    • CMAKE_‹LANG›_DEVICE_LINK_MODE,

    • CMAKE_LINK_WARNING_AS_ERROR,

    • CMAKE_MSVC_RUNTIME_CHECKS,

    • CMAKE_DEBUGGER_WORKING_DIRECTORY,

    • CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,

    • CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
  • Добавлены новые свойства: DEBUGGER_WORKING_DIRECTORY и VS_SOLUTION_ITEMS (для прикрепления файлов к .sln для Visual Studio).

  • Обеспечено формирование готовых сборок CMake для SunOS для архитектур sparc64 и x86_64.



Источник: http://www.opennet.ru/opennews/art.shtml? num=62974

© OpenNet