Lansarea sistemului de build CMake 3.17.0

Prezentat lansarea unui generator de scenarii de construcție open-source, multiplatformă CMake 3.17, care servește ca alternativă la Autotools și este utilizat în proiecte precum KDE, LLVM/Clang, MySQL, MariaDB, ReactOS și Blender. Codul CMake este scris în C++ și este distribuit sub licența BSD.

CMake se remarcă prin furnizarea unui limbaj simplu de scripturi, prin extensibilitate prin module, un număr minim de dependențe (fără legături la M4, Perl sau Python), suport pentru caching, instrumente pentru cross-compiling, generarea fișierelor de construcție pentru o gamă largă de sisteme de construcție și compilatoare, utilități ctest și cpack pentru definirea scenariilor de testare și construcție a pachetelor, precum și utilitarul cmake-gui pentru configurarea interactivă a parametrilor de construcție.

Principalele îmbunătățiri:

  • A fost adăugat un nou generator de scripturi de construire bazat pe instrumentul Ninja - „Ninja Multi-Config”, care se deosebește de vechiul generator prin capacitatea de a gestiona mai multe configurații de construire simultan.
  • În generatorul de scripturi de construire pentru Visual Studio a apărut posibilitatea de a defini fișierele sursă asociate fiecărei configurații (per-config sources).
  • În instrumentele de configurare a parametrilor de compilare (Compile Features) a fost adăugată opțiunea de a defini meta-parametrii pentru CUDA („cuda_std_03”, „cuda_std_14” etc.).
  • Au fost adăugate variabilele „CMAKE_CUDA_RUNTIME_LIBRARY” și „CUDA_RUNTIME_LIBRARY” pentru a alege tipul de biblioteci runtime utilizate cu CUDA.
  • A fost adăugat modul „FindCUDAToolkit” pentru a determina uneltele CUDA disponibile în sistem fără a activa limbajul CUDA.
  • În utilitarul cmake a fost adăugată comanda „—debug-find” pentru a oferi diagnosticare suplimentară și ușor de citit în timpul operațiunilor de căutare. Pentru scopuri similare, a fost adăugată variabila CMAKE_FIND_DEBUG_MODE.
  • În modulul „FindCURL” a fost adăugat suportul pentru a căuta uneltele CURL folosind fișierele de configurare cmake generate „CURLConfig.cmake”. Pentru a dezactiva acest comportament, a fost prevăzută variabila CURL_NO_CURL_CMAKE.
  • În modulul FindPython a fost adăugată capacitatea de a căuta componente Python în medii virtuale gestionate prin „conda”.
  • În utilitarul ctest au fost adăugate opțiunile „—no-tests=[error|ignore]” pentru a defini comportamentul în cazul absenței testelor și „—repeat” pentru a stabili condițiile de reluare a testelor (until-pass, after-timeout).
  • A fost asigurat transferul proprietăților obiectului de construire INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES și INTERFACE_LINK_DEPENDS în lista de dependențe interne ale bibliotecilor construite static.
  • Când se utilizează uneltele MinGW, căutarea fișierelor DLL prin comanda find_library este dezactivată în mod implicit (în locul acesteia, se încearcă în mod implicit importarea bibliotecilor „.dll.a”).
  • Logica de selecție a utilitarului ninja în generatorul Ninja nu mai depinde de numele fișierului executabil — se utilizează primul utilitar găsit, seja ninja-build, ninja sau samu, găsit în căile definite prin variabila de mediu PATH.
  • În utilitarul cmake a fost adăugată comanda „-E rm”, care poate fi folosită pentru a șterge fișiere și directoare în loc de comenzile separate „-E remove” și „-E remove_directory”.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster