Dipuntepangaken release saka cross-platform mbukak mbangun script generator CMake 3.17, sing dadi alternatif kanggo Autotools lan digunakake ing proyek kayata KDE, LLVM/Clang, MySQL, MariaDB, ReactOS lan Blender. Kode CMake ditulis ing C ++ lan disebarake miturut lisensi BSD.
CMake misuwur amarga nyedhiyakake basa skrip sing prasaja, sarana kanggo nggedhekake fungsi liwat modul, jumlah dependensi minimal (ora ana ikatan karo M4, Perl utawa Python), dhukungan caching, ana alat kanggo kompilasi silang, dhukungan kanggo mbangun mbangun. file kanggo sawetara saka sudhut mbangun sistem lan compiler, ngarsane ctest lan cpack keperluan kanggo nemtokake script test lan paket bangunan, cmake-gui sarana kanggo setelan interaktif mbangun paramèter.
Kemampuan kanggo nyetel parameter meta kanggo CUDA ("cuda_std_03", "cuda_std_14", etc.) wis ditambahake menyang alat kanggo nyetel paramèter compiler (Fitur Compile).
Nambahake variabel "CMAKE_CUDA_RUNTIME_LIBRARY" lan "CUDA_RUNTIME_LIBRARY" kanggo milih jinis perpustakaan runtime nalika nggunakake CUDA.
Nambahake modul "FindCUDAToolkit" kanggo nemtokake toolkit CUDA sing kasedhiya ing sistem tanpa ngaktifake basa CUDA.
Nambahake printah "--debug-find" menyang cmake kanggo ngasilake diagnostik tambahan sing bisa diwaca nalika nindakake operasi telusuran. Kanggo tujuan sing padha, variabel CMAKE_FIND_DEBUG_MODE wis ditambahake.
Nambahake dhukungan kanggo nggoleki alat CURL nggunakake file konfigurasi sing digawe cmake "CURLConfig.cmake" menyang modul "FindCURL". Kanggo mateni prilaku iki, variabel CURL_NO_CURL_CMAKE diwenehake.
Modul FindPython nambahake kemampuan kanggo nggoleki komponen Python ing lingkungan virtual sing dikelola nggunakake "conda".
Utilitas ctest wis nambahake opsi "--no-tests=[error|ignore]" kanggo nemtokake prilaku yen ora ana tes lan "--repeat" kanggo nyetel kondisi kanggo tes maneh (nganti lulus, sawise wektu entek).
Properti target perakitan INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES lan INTERFACE_LINK_DEPENDS saiki ditransfer ing antarane dependensi internal perpustakaan sing dirakit kanthi statis.
Nalika nggunakake toolkit MinGW, search file DLL karo printah find_library dipatèni minangka standar (nanging, nyoba gawan kanggo ngimpor ".dll.a" perpustakaan).
Logika kanggo milih utilitas ninja ing generator Ninja saiki ora gumantung ing jeneng file sing bisa dieksekusi - utilitas ninja-build, ninja utawa samu pisanan sing ditemokake ing dalan sing ditetepake liwat variabel lingkungan PATH digunakake.
Nambahake printah "-E rm" kanggo cmake sing bisa digunakake kanggo mbusak file lan direktori tinimbang perintah "-E remove" lan "-E remove_directory" sing kapisah.