Релиз системы сборки CMake 3.22

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

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

Основные улучшения:

  • В средствах для настройки параметров компилятора (Compile Features) предоставлена возможность включения и отключения расширений компилятора без указания уровня поддержки стандарта, а также исключена установка лишних флагов с уровнем стандарта языка, если выбранные настойки подпадают под установленные по умолчанию параметры компилятора.

  • В команде cmake_host_system_information () добавлена возможность запроса идентификатора операционной системы, хранимого в файле /etc/os-release.
  • Добавлены переменные окружения CMAKE_BUILD_TYPE и CMAKE_CONFIGURATION_TYPES, через которую можно выставить значение по умолчанию одноимённых переменных CMake.
  • Добавлена переменная «CMAKE_REQUIRE_FIND_PACKAGE_‹PackageName›» переводящая вызов функции find_package () для обнаружения указанного пакета в разряд обязательных.

  • Добавлена переменная окружения «CMAKE_INSTALL_MODE» для установки символических ссылок место копирования файлов при вызове «install ()».

  • Добавлен флаг «CMAKE_‹LANG›_LINK_WHAT_YOU_USE_FLAG» и переменная «CMAKE_LINK_WHAT_YOU_USE_CHECK» для выставления и проверки флагов компоновщика.

  • В модуле FetchContent обеспечена передача выставленных переменных «CMAKE_TLS_VERIFY», «CMAKE_TLS_CAINFO», «CMAKE_NETRC» и «CMAKE_NETRC_FILE» в сценарии сборки внешних проектов (ранее данные параметры игнорировались).

  • В предоставляемый модулем «CMakeDependentOption» макрос «cmake_dependent_option ()» добавлена полная поддержка синтаксиса условных выражений.
  • Модули «FindJasper» и «FindMatlab» теперь предоставляют импортируемые цели.

  • В свойстве «VS_SETTINGS» реализована поддержка всех типов файлов с исходными текстами.

  • Объявлен устаревшим и будет удалён в одном из следующих выпусков генератор «Visual Studio 10 2010».



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

© OpenNet