Lähettäjä monikäyttöisen avoimen koontiversion komentosarjageneraattorin julkaisu CMake 3.17, joka toimii vaihtoehtona Autotoolsille ja jota käytetään projekteissa, kuten KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ja Blender. CMake-koodi on kirjoitettu C++-kielellä ja jaettu BSD-lisenssillä.
CMake tarjoaa yksinkertaisen skriptikielen, tavan laajentaa toimintoja moduulien kautta, minimaalisen määrän riippuvuuksia (ei sidotusta M4:ään, Perliin tai Pythoniin), välimuistin tuesta, ristiinkäännöstyökalujen olemassaolosta, tuesta koontiversion luomiseen. tiedostot monenlaisille koontijärjestelmille ja kääntäjille, läsnäolo-ctest- ja cpack-apuohjelmat testiskriptien ja -pakettien määrittämiseen, cmake-gui-apuohjelma koontiparametrien interaktiiviseen asettamiseen.
Uusi Ninja-työkalupakkiin perustuva kokoonpanoskriptigeneraattori on lisätty - "Ninja Multi-Config", joka eroaa vanhasta generaattorista siinä, että se pystyy käsittelemään useita kokoonpanokokoonpanoja kerralla.
Visual Studion kokoonpanokomentosarjageneraattorissa ilmestyi kyky määrittää kuhunkin kokoonpanoon liittyvät lähdetiedostot (konfiguraatiokohtaiset lähteet).
Mahdollisuus asettaa CUDA:n metaparametreja ("cuda_std_03", "cuda_std_14" jne.) on lisätty kääntäjän parametrien asettamisen työkaluihin (käännösominaisuudet).
Lisätty muuttujat "CMAKE_CUDA_RUNTIME_LIBRARY" ja "CUDA_RUNTIME_LIBRARY" ajonaikaisten kirjastojen tyypin valitsemiseksi käytettäessä CUDA:ta.
Lisätty "FindCUDAToolkit" -moduuli, jolla määritetään järjestelmässä käytettävissä oleva CUDA-työkalupaketti ilman CUDA-kieltä.
Lisätty "--debug-find"-komento Cmake-komentoon, joka tuottaa luettavissa olevia diagnostisia tietoja hakutoimintoja suoritettaessa. Samanlaisia tarkoituksia varten on lisätty muuttuja CMAKE_FIND_DEBUG_MODE.
Lisätty tuki CURL-työkalujen etsimiselle käyttämällä cmaken luomia konfiguraatiotiedostoja "CURLConfig.cmake" "FindCURL"-moduuliin. Voit poistaa tämän toiminnan käytöstä CURL_NO_CURL_CMAKE-muuttujan avulla.
FindPython-moduuli on lisännyt mahdollisuuden etsiä Python-komponentteja virtuaaliympäristöissä, joita hallinnoidaan "condalla".
ctest-apuohjelma on lisännyt "--no-tests=[error|ignore]" -vaihtoehdot määrittämään käyttäytymisen, jos testejä ei ole tehty, ja "--repeat" asettaakseen ehdot testien uudelleen suorittamiselle (kunnes läpäistään, jälkeen aikakatkaisu).
Kokoonpanokohteen ominaisuudet INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES ja INTERFACE_LINK_DEPENDS siirretään nyt staattisesti koottujen kirjastojen sisäisten riippuvuuksien joukossa.
Käytettäessä MinGW-työkalupakettia DLL-tiedostojen haku find_library-komennolla on oletusarvoisesti poissa käytöstä (oletusyritys sen sijaan on tuoda .dll.a-kirjastoja).
Ninja-apuohjelman valinnan logiikka Ninja-generaattorissa ei nyt riipu suoritettavan tiedoston nimestä - käytetään ensimmäistä ninja-build-, ninja- tai samu-apuohjelmaa, joka löytyy PATH-ympäristömuuttujan kautta määritellyistä poluista.
Lisätty "-E rm" -komento cmakeen, jota voidaan käyttää tiedostojen ja hakemistojen poistamiseen erillisten "-E remove" ja "-E remove_directory" -komentojen sijaan.