Представен е релизът на кросплатформения отворен генератор за сценарии за сборка 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_», която преобразува извикването на функцията find_package() за откриване на указан пакет в задължителна.
- Добавена е променливата на средата «CMAKE_INSTALL_MODE» за установяване на символични линкове вместо копиране на файлове при извикване на «install()».
- Добавен е флагът «CMAKE__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».
Източник: opennet.ru
