Izdanje CMake 3.17.0 build sistema

Poslao izdanje višeplatformskog generatora otvorenih skripti CMake 3.17, koji djeluje kao alternativa Autotools-u i koristi se u projektima kao što su KDE, LLVM/Clang, MySQL, MariaDB, ReactOS i Blender. CMake kod je napisan u C++ i distribuira se pod BSD licencom.

CMake je poznat po tome što pruža jednostavan skript jezik, sredstvo za proširenje funkcionalnosti kroz module, minimalan broj zavisnosti (bez vezivanja za M4, Perl ili Python), podršku za keširanje, prisustvo alata za unakrsnu kompilaciju, podršku za generisanje build-a datoteke za širok spektar sistema i kompajlera za izgradnju, prisutnost ctest i cpack uslužnih programa za definisanje testnih skripti i paketa za izgradnju, cmake-gui uslužni program za interaktivno postavljanje parametara izgradnje.

Glavni poboljšanja:

  • Dodan je novi generator skripte za sklapanje baziran na Ninja kompletu alata - "Ninja Multi-Config", koji se razlikuje od starog generatora po mogućnosti obrade nekoliko konfiguracija sklopa odjednom.
  • U generatoru asemblerskih skripti za Visual Studio pojavila mogućnost definiranja izvornih datoteka povezanih sa svakom konfiguracijom (izvori po konfiguraciji).
  • Mogućnost postavljanja meta parametara za CUDA (“cuda_std_03”, “cuda_std_14” itd.) dodata je alatima za postavljanje parametara kompajlera (Kompilacijske karakteristike).
  • Dodane su varijable "CMAKE_CUDA_RUNTIME_LIBRARY" i "CUDA_RUNTIME_LIBRARY" za odabir vrste runtime biblioteka kada se koristi CUDA.
  • Dodan je modul "FindCUDAToolkit" za određivanje CUDA alata koji je dostupan na sistemu bez omogućavanja CUDA jezika.
  • Dodata naredba "--debug-find" u cmake za izlaz dodatne čitljive dijagnostike prilikom izvođenja operacija pretraživanja. Za slične svrhe dodana je varijabla CMAKE_FIND_DEBUG_MODE.
  • Dodata podrška za traženje CURL alata koristeći cmake generirane konfiguracijske datoteke “CURLConfig.cmake” u “FindCURL” modul. Da biste onemogućili ovo ponašanje, obezbjeđena je varijabla CURL_NO_CURL_CMAKE.
  • Modul FindPython je dodao mogućnost pretraživanja Python komponenti u virtuelnim okruženjima kojima se upravlja pomoću “conda”.
  • Uslužni program ctest je dodao opcije “--no-tests=[error|ignore]” za definiranje ponašanja u slučaju da nema testova i “--repeat” za postavljanje uslova za ponovno pokretanje testova (do prolaska, nakon isteka vremena).
  • Ciljna svojstva sklopa INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS sada se prenose među interne zavisnosti statički sastavljenih biblioteka.
  • Kada koristite MinGW komplet alata, traženje DLL datoteka pomoću naredbe find_library je onemogućeno prema zadanim postavkama (umjesto toga, podrazumevani pokušaj je uvoz biblioteka ".dll.a").
  • Logika za odabir ninja uslužnog programa u Ninja generatoru sada ne zavisi od imena izvršne datoteke - koristi se prvi ninja-build, ninja ili samu uslužni program koji se nalazi na stazama definisanim kroz PATH varijablu okruženja.
  • Dodata naredba "-E rm" u cmake koja se može koristiti za uklanjanje datoteka i direktorija umjesto zasebnih naredbi "-E remove" i "-E remove_directory".

izvor: opennet.ru

Dodajte komentar