Izdanje sustava za izgradnju CMake 3.17.0

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

CMake je poznat po pružanju jednostavnog skriptnog jezika, sredstva za proširenje funkcionalnosti putem modula, minimalnog broja ovisnosti (bez vezanja na M4, Perl ili Python), podrške za predmemoriju, prisutnosti alata za unakrsnu kompilaciju, podrške za generiranje međugradnje datoteke za širok raspon sustava za izradu i kompilatora, prisutnost ctest i cpack uslužnih programa za definiranje testnih skripti i paketa za izgradnju, cmake-gui pomoćni program za interaktivno postavljanje parametara za izgradnju.

Glavni poboljšanja:

  • Dodan je novi generator skripte sklopa temeljen na Ninja alatu - “Ninja Multi-Config”, koji se od starog generatora razlikuje po mogućnosti obrade nekoliko konfiguracija sklopa odjednom.
  • U generatoru skripti za sklapanje za Visual Studio pojavio 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.) dodana je u alate za postavljanje parametara prevoditelja (Compile Features).
  • 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 dostupnog u sustavu bez omogućavanja CUDA jezika.
  • Dodana je 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.
  • Dodana je podrška za traženje CURL alata pomoću cmake generiranih konfiguracijskih datoteka “CURLConfig.cmake” u modul “FindCURL”. Da biste onemogućili ovo ponašanje, dostupna je varijabla CURL_NO_CURL_CMAKE.
  • Modul FindPython dodao je mogućnost pretraživanja Python komponenti u virtualnim okruženjima kojima se upravlja pomoću “conda”.
  • Uslužni program ctest dodao je opcije “--no-tests=[greška|ignoriraj]” za definiranje ponašanja u slučaju da nema testova i “--repeat” za postavljanje uvjeta za ponovno izvođenje testova (dok ne prođe, nakon isteka vremena).
  • Ciljna svojstva INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES i INTERFACE_LINK_DEPENDS sada su uključena među interne ovisnosti statički izgrađenih biblioteka.
  • Kada koristite MinGW toolkit, traženje DLL datoteka s naredbom find_library onemogućeno je prema zadanim postavkama (umjesto toga, zadani pokušaj je uvoz ".dll.a" biblioteka).
  • Logika odabira ninja uslužnog programa u Ninja generatoru sada ne ovisi o nazivu izvršne datoteke - koristi se prvi ninja-build, ninja ili samu uslužni program pronađen u stazama definiranim kroz varijablu okruženja PATH.
  • Dodana je 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