релийз на платформен отворен генератор на сценарии за билд , който служи като алтернатива на Autotools и се използва в проекти като KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Кодът на CMake е написан на C++ и се разпространява под BSD лиценз.
CMake е известен с предоставянето на прост език на сценарии, средства за разширяване на функционалността чрез модули, минимален брой зависимости (без привързаност към M4, Perl или Python), поддръжка на кеширане, наличието на инструменти за крос-компилация, генериране на файлове за билд за широка гама системи за билд и компилатори, наличието на инструменти ctest и cpack за определяне на сценарии за тестване и сглобяване на пакети, както и интерактивен инструмент cmake-gui за конфигуриране на параметри за билд.
Основни :
- Добавен е нов генератор на сборочни сценарии, базиран на инструмента Ninja — "Ninja Multi-Config", който се отличава от стария генератор с възможността да обработва няколко сборочни конфигурации едновременно.
- В генератора на сборочни сценарии за Visual Studio може да се определят файлове с изходен код, свързани с всяка конфигурация (per-config sources).
- В инструментите за настройка на параметрите на компилатора (Compile Features) е добавена възможност за задаване на мета-параметри за CUDA ("cuda_std_03", "cuda_std_14" и т.н.).
- Добавени са променливи "CMAKE_CUDA_RUNTIME_LIBRARY" и "CUDA_RUNTIME_LIBRARY" за избор на типа на runtime-библиотеки при използване на CUDA.
- Добавен е модул "FindCUDAToolkit" за определяне на наличния в системата инструментарий CUDA без включване на езика CUDA.
- В утилитата cmake е добавена команда "--debug-find" за извеждане на допълнителна четима диагностика при извършване на операции по търсене. За аналогични цели е добавена променлива CMAKE_FIND_DEBUG_MODE.
- В модула "FindCURL" е добавена поддръжка за търсене на инструментария CURL чрез генерираните cmake файлове за конфигурация "CURLConfig.cmake". За деактивиране на това поведение е предвидена променлива CURL_NO_CURL_CMAKE.
- В модула FindPython е добавена възможност за търсене на компоненти на Python в виртуални среди, управлявани с "conda".
- В утилитата ctest са добавени опции "--no-tests=[error|ignore]" за определяне на поведението в случай на липса на тестове и "--repeat" за задаване на условия за повторно стартиране на тестовете (until-pass, after-timeout).
- Обезпечен е пренос на свойства на сборочната цел INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES и INTERFACE_LINK_DEPENDS в числото на вътрешните зависимости на статично компилирани библиотеки.
- При използването на инструментария MinGW по подразбиране е деактивиран търсенето на DLL-файлове с командата find_library (вместо това по подразбиране се извършва опит за импортиране на библиотеки ".dll.a").
- Логиката за избор на утилитата ninja в генератора Ninja вече не зависи от името на изпълнимия файл — използва се първата налична утилита ninja-build, ninja или samu, намерена в пътищата, определени чрез променливата на околната среда PATH.
- В утилитата cmake е добавена команда "-E rm", която може да се използва за изтриване на файлове и директории вместо отделни команди "-E remove" и "-E remove_directory".
Източник: opennet.ru
