Представлен релиз кроссплатформенного открытого генератора сценариев сборки 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".
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".
Релиз системы сборки CMake 3.22
www.opennet.ru