izdanje multiplatformskog otvorenog generatora za skripte za izgradnju , koji služi kao alternativa Autotools i koristi se u projektima poput KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake napisan je u C++ i distribuira se pod BSD licencom.
CMake se ističe jednostavnim jezikom skripti, mogućnostima proširenja funkcionalnosti putem modula, minimalnim brojem ovisnosti (nema povezanosti s M4, Perlom ili Pythonom), podrškom za keširanje, alatima za kružno kompiliranje, podrškom za generiranje datoteka za izgradnju za širok spektar sustava izgradnje i kompajlera, te alatima ctest i cpack za definiranje skripti za testiranje i pakiranje, a također i alatom cmake-gui za interaktivno postavljanje opcija izgradnje.
Glavne :
- Dodani su novi generator skripti za izgradnju temeljen na alatu Ninja — "Ninja Multi-Config", koji se razlikuje od starog generatora po mogućnosti obrade više konfiguracija izgradnje odjednom.
- U generatoru skripti za izgradnju za Visual Studio dodana je mogućnost definiranja datoteka s izvorom povezanih s svakom konfiguracijom (per-config sources).
- U alate za postavljanje opcija kompajlera (Compile Features) dodana je mogućnost postavljanja meta-parametara za CUDA ("cuda_std_03", "cuda_std_14" itd.).
- Dodane su varijable "CMAKE_CUDA_RUNTIME_LIBRARY" i "CUDA_RUNTIME_LIBRARY" za odabir vrste runtime biblioteka pri korištenju CUDA.
- Dodan je modul "FindCUDAToolkit" za otkrivanje dostupnog alata CUDA u sustavu bez uključivanja jezika CUDA.
- U alat cmake dodana je naredba "—debug-find" za ispis dodatne čitljive dijagnostike prilikom izvođenja operacija pretraživanja. Za slične ciljeve dodana je varijabla CMAKE_FIND_DEBUG_MODE.
- U modul "FindCURL" dodana je podrška za pretraživanje alata CURL putem generiranih cmake konfiguracijskih datoteka "CURLConfig.cmake". Za onemogućavanje ovog ponašanja predviđena je varijabla CURL_NO_CURL_CMAKE.
- U modul FindPython dodana je mogućnost pretraživanja Python komponenti u virtualnim okruženjima kojima upravlja "conda".
- U alat ctest dodane su opcije "—no-tests=[error|ignore]" za određivanje ponašanja u slučaju nepostojanja testova i "—repeat" za postavljanje uvjeta ponovnog izvođenja testova (until-pass, after-timeout).
- Osigurano je prebacivanje svojstava cilja agregacije INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS među internim zavisnostima statički prikupljenih biblioteka.
- Kada se koristi MinGW alat, prema zadanim postavkama isključen je pretraživač DLL datoteka komandom find_library (umjesto toga, prema zadanim postavkama pokušava se uvesti biblioteke " .dll.a").
- Logika odabira alata ninja u Ninja generatoru više ne zavisi od naziva izvršne datoteke — koristi se prvi pronađeni alat ninja-build, ninja ili samu, koji se nalazi u putanjama definiranim putem varijable okruženja PATH.
- U alat cmake dodana je komanda "-E rm", koju možete koristiti za brisanje datoteka i direktorija umjesto odvojenih komandi "-E remove" i "-E remove_directory".
Izvor: opennet.ru
