izdanje cross-platform otvorenog generatora skripti za izgradnju , koji služi kao alternativa Autotools i koristi se u projektima poput KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. Kod CMake-a je napisan na C++ jeziku i distribuira se pod BSD licencom.
CMake se ističe pružanjem jednostavnog jezika skripti, mogućnostima proširenja funkcionalnosti putem modula, minimalnim brojem zavisnosti (nema vezanosti za M4, Perl ili Python), podrškom za keširanje, prisutnošću alata za cross-kompilaciju, podrškom za generisanje datoteka za izgradnju za širok spektar sistema za izgradnju i kompajlere, prisutnošću ctest i cpack alata za definisanje skripti za testiranje i izgradnju paketa, alatom cmake-gui za interaktivno podešavanje parametara izgradnje.
Glavne :
- Dodana je nova generacija skript za izgradnju temeljen na Ninja alatu — „Ninja Multi-Config“, koja se razlikuje od stare generacije po mogućnosti obrade više konfiguracija istovremeno.
- U generatoru skript za izgradnju za Visual Studio postoji mogućnost definisanja izvornih datoteka povezanih sa svakom konfiguracijom (izvori po konfiguraciji).
- U alatima za podešavanje opcija kompajlera (Compile Features) dodana je mogućnost postavljanja meta-parametara za CUDA („cuda_std_03“, „cuda_std_14“ i slično).
- Dodane su promenljive „CMAKE_CUDA_RUNTIME_LIBRARY“ i „CUDA_RUNTIME_LIBRARY“ za izbor tipa runtime biblioteka prilikom korišćenja CUDA.
- Dodam je modul „FindCUDAToolkit“ za prepoznavanje dostupnog CUDA alata u sistemu bez uključivanja CUDA jezika.
- U alat cmake dodana je komanda „—debug-find“ za ispis dodatne čitljive dijagnostike prilikom izvršavanja pretraga. Za slične svrhe dodana je promenljiva CMAKE_FIND_DEBUG_MODE.
- U modul „FindCURL“ dodata je podrška za pretragu CURL alata pomoću generisanih cmake konfiguracionih datoteka „CURLConfig.cmake“. Za isključivanje ove funkcionalnosti predviđena je promenljiva CURL_NO_CURL_CMAKE.
- U modul FindPython dodata je mogućnost pretrage Python komponenti u virtuelnim okruženjima koja upravljaju „conda“.
- U alat ctest dodate su opcije „—no-tests=[error|ignore]“ za definisanje ponašanja u slučaju odsustva testova i „—repeat“ za postavljanje uslova ponovnog pokretanja testova (do uspeha, posle isteka vremena).
- Osigurano je prenošenje svojstava cilja za izgradnju INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS u broju unutrašnjih zavisnosti statički izgrađenih biblioteka.
- Pri korišćenju MinGW alata, prema zadatom postavci, onemogućen je pretraga DLL datoteka komandom find_library (umesto toga, prema zadatu se pokušava uvoz biblioteka „.dll.a“).
- Logika izbora ninja alata u Ninja generatoru sada ne zavisi od imena izvršne datoteke — koristi se prva dostupna alatka ninja-build, ninja ili samu, pronađena u putanjama definisanim kroz promenljivu okruženje PATH.
- U alat cmake dodata je komanda „-E rm“, koju možete koristiti za brisanje datoteka i direktorijuma umesto odvojenih komandi „-E remove“ i „-E remove_directory“.
Izvor: opennet.ru
