релийз на платформен отворен генератор на сценарии за билд , който служи като алтернатива на Autotools и се използва в проекти като KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Кодът на CMake е написан на C++ и се разпространява под BSD лиценз.
CMake е известен с предоставянето на прост език на сценарии, средства за разширяване на функционалността чрез модули, минимален брой зависимости (без привързаност към M4, Perl или Python), поддръжка на кеширане, наличието на инструменти за крос-компилация, генериране на файлове за билд за широка гама системи за билд и компилатори, наличието на инструменти ctest и cpack за определяне на сценарии за тестване и сглобяване на пакети, както и интерактивен инструмент cmake-gui за конфигуриране на параметри за билд.
Основни :
- В генератора на сценарии за билд на базата на Ninja е добавена начална поддръжка на езика , разработван от Apple;
- Добавена е поддръжка за варианта на компилатора Clang за Windows, който извършва билд с ABI MSVC, но използва опции за команден ред в стил GNU;
- Добавени са променливите CMAKE_MSVC_RUNTIME_LIBRARY и MSVC_RUNTIME_LIBRARY за избор на рънтайм библиотеките, използвани от компилаторите на базата на ABI MSVC (MS Visual Studio);
- За компилатори като MSVC, във CMAKE__FLAGS по подразбиране е спряно изброяването на флаговете за управление на предупреждения, като "/W3";
- Добавено е генераторно изразяване "COMPILE_LANG_AND_ID:" за определяне на опции за компилатора за целеви файлове, прилагащи променливите CMAKE__COMPILER_ID и LANGUAGE за всеки файл с код;
- В генераторните изрази C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID и PLATFORM_ID е добавена поддръжка за съпоставяне на една стойност със списък, чийто елементи са разделени със запетая; - Добавена е променливата CMAKE_FIND_PACKAGE_PREFER_CONFIG, при която извикването на find_package() първо ще търси конфигурационен файл на пакета, дори и да е наличен модул за търсене;
- За интерфейсни библиотеки е добавена поддръжка за задаване на свойствата PUBLIC_HEADER и PRIVATE_HEADER, чийто заглавия могат да се инсталират чрез командата install(TARGETS) с предаване на аргументите PUBLIC_HEADER и PRIVATE_HEADER;
- Добавена е променливата CMAKE_VS_JUST_MY_CODE_DEBUGGING и целевото свойство VS_JUST_MY_CODE_DEBUGGING за включване на режим "Just My Code" в отладчика на Visual Studio при компилация с MSVC cl 19.05 и по-нови версии;
- Преработен модул FindBoost, който сега работи по-ефективно в режимите Config и Module при наличие на други търсещи модули;
- В командата message() е добавена поддръжка за типовете NOTICE, VERBOSE,
DEBUG и TRACE; - Командата «export(PACKAGE)» сега не извършва нищо, освен ако не бъде явно активирана чрез променливата CMAKE_EXPORT_PACKAGE_REGISTRY.
Източник: opennet.ru
