Tanishtirdi platformalararo ochiq skript generatorini chiqarish CMake 3.17, bu Autotools-ga muqobil bo'lib, KDE, LLVM/Clang, MySQL, MariaDB, ReactOS va Blender kabi loyihalarda qo'llaniladi. CMake kodi C++ da yozilgan va BSD litsenziyasi ostida tarqatiladi.
CMake oddiy skript tilini, modullar orqali funksionallikni kengaytirish vositasini, minimal miqdordagi bog'liqlikni (M4, Perl yoki Python bilan bog'lanmaydi), keshlashni qo'llab-quvvatlashni, o'zaro kompilyatsiya qilish vositalarining mavjudligini, qurilishni yaratishni qo'llab-quvvatlashi bilan ajralib turadi. keng assortimentdagi qurish tizimlari va kompilyatorlari uchun fayllar, test skriptlari va qurish paketlarini aniqlash uchun ctest va cpack yordam dasturlari, qurish parametrlarini interaktiv sozlash uchun cmake-gui yordam dasturi.
Ninja asboblar to'plamiga asoslangan yangi yig'ish skripti generatori qo'shildi - "Ninja Multi-Config", bu eski generatordan bir vaqtning o'zida bir nechta montaj konfiguratsiyasini qayta ishlash qobiliyati bilan farq qiladi.
Visual Studio uchun montaj skript generatorida paydo bo'ldi har bir konfiguratsiya bilan bog'langan manba fayllarini aniqlash qobiliyati (har bir konfiguratsiya manbalari).
CUDA uchun meta parametrlarni o'rnatish qobiliyati ("cuda_std_03", "cuda_std_14" va boshqalar) kompilyator parametrlarini o'rnatish vositalariga (Compile Features) qo'shildi.
CUDA dan foydalanganda ish vaqti kutubxonalari turini tanlash uchun “CMAKE_CUDA_RUNTIME_LIBRARY” va “CUDA_RUNTIME_LIBRARY” o‘zgaruvchilari qo‘shildi.
CUDA tilini yoqmasdan tizimda mavjud CUDA asboblar to'plamini aniqlash uchun "FindCUDAToolkit" moduli qo'shildi.
Qidiruv operatsiyalarini bajarishda qo'shimcha o'qilishi mumkin bo'lgan diagnostikani chiqarish uchun cmake-ga "--debug-find" buyrug'i qo'shildi. Shunga o'xshash maqsadlar uchun CMAKE_FIND_DEBUG_MODE o'zgaruvchisi qo'shildi.
“FindCURL” moduliga cmake tomonidan yaratilgan “CURLConfig.cmake” konfiguratsiya fayllari yordamida CURL vositalarini qidirish uchun qo‘shimcha yordam qo‘shildi. Ushbu xatti-harakatni o'chirish uchun CURL_NO_CURL_CMAKE o'zgaruvchisi taqdim etiladi.
FindPython moduli "conda" yordamida boshqariladigan virtual muhitda Python komponentlarini qidirish imkoniyatini qo'shdi.
ctest yordam dasturi sinovlar bo'lmagan taqdirda xatti-harakatni aniqlash uchun "--no-tests=[error|e'tibor bermaslik]" parametrlarini va testlarni qayta o'tkazish shartlarini belgilash uchun "--repeat" parametrlarini qo'shdi (o'tishgacha, ta'tildan keyin).
INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES va INTERFACE_LINK_DEPENDS assambleyasining maqsadli xususiyatlari endi statik ravishda yig‘ilgan kutubxonalarning ichki bog‘liqliklari orasida o‘tkaziladi.
MinGW asboblar to'plamidan foydalanganda find_library buyrug'i bilan DLL fayllarni qidirish sukut bo'yicha o'chirib qo'yilgan (o'rniga standart urinish ".dll.a" kutubxonalarini import qilishdir).
Ninja generatorida ninja yordam dasturini tanlash mantig'i endi bajariladigan fayl nomiga bog'liq emas - PATH muhit o'zgaruvchisi orqali aniqlangan yo'llarda topilgan birinchi ninja-build, ninja yoki samu yordam dasturi ishlatiladi.
Cmake-ga alohida "-E remove" va "-E remove_directory" buyruqlari o'rniga fayllar va kataloglarni o'chirish uchun ishlatilishi mumkin bo'lgan "-E rm" buyrug'i qo'shildi.