Lansarea sistemului de compilare CMake 3.16

Introdus lansarea unui generator de scripturi open build multiplatformă CMake 3.16, care acționează ca o alternativă la Autotools și este folosit î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 este remarcabil pentru furnizarea unui limbaj de scripting simplu, un mijloc de extindere a funcționalității prin module, un număr minim de dependențe (fără legarea la M4, Perl sau Python), suport pentru cache, prezența instrumentelor pentru compilare încrucișată, suport pentru generarea de build fișiere pentru o gamă largă de sisteme de compilare și compilatoare, utilitarele de prezență ctest și cpack pentru definirea scripturilor de testare și a pachetelor de construire, utilitarul cmake-gui pentru setarea interactivă a parametrilor de construcție.

Principalul îmbunătățiri:

  • S-a adăugat suport pentru Objective C (“OBJC”) și limbajele Objective
    C++ ("OBJCXX"), care poate fi activat prin comenzile project() și enable_language(), după care codul din fișierele „.m” „.mm” se va compila ca Objective C și Objective C++, mai degrabă decât ca C++, așa cum era înainte;
  • S-a adăugat suport pentru compilatorul Clang pe platforma Solaris;
  • S-au adăugat noi opțiuni de linie de comandă: „cmake -E true|false” pentru a imprima codurile returnate 0 și 1; „cmake --trace-redirect=" pentru a redirecționa informațiile de urmărire către un fișier
    „stderr”; comanda „cmake --loglevel” a fost redenumită în „--log-level” pentru a o alinia cu numele celorlalte comenzi;
  • S-a adăugat comanda „target_precompile_headers()” pentru a lista lista fișierelor de antet utilizate în timpul precompilării (reduce timpul de construire);
  • S-a adăugat proprietatea „UNITY_BUILD”, care activează modul batch pentru procesarea fișierelor sursă în generatoare pentru a accelera construirea;
  • S-au adăugat comenzi „find_file()”, „find_library()”, „find_path()”,
    „find_package()” și „find_program()” pentru a căuta fișiere, biblioteci, căi, pachete și executabile în funcție de variabile care definesc căile de căutare pentru diferite categorii de fișiere.
    Variabilele „CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH”, „CMAKE_FIND_USE_CMAKE_PATH”, „CMAKE_FIND_USE_CMAKE_SYSTEM_PATH”, „CMAKE_FIND_USE_PACKAGE_ROOT_PATH”, „CMAKE_FIND_USE_CMAKE_PATH” și „CMAKE_FIND_USE_SYSTEM_PATH”_THM_GPAKE__ sunt folosite pentru a controla căile de căutare de bază ISTRY";
  • S-a adăugat modul „fișier(GET_RUNTIME_DEPENDENCIES)” la comanda „fișier()”, care vă permite să preluați în mod recursiv lista de biblioteci utilizate atunci când conectați dinamic un fișier executabil sau o bibliotecă. Modul a înlocuit comanda GetPrerequisites(), care acum a fost depreciată;
  • Comanda „ctest(1)” implementează capacitatea de a serializa teste pe baza resurselor necesare pentru fiecare test;
  • Variabila „CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY” a fost retrasă și ar trebui înlocuită cu „CMAKE_FIND_USE_PACKAGE_REGISTRY”;
  • Suport îmbunătățit pentru platforma AIX. Când utilizați proprietatea „ENABLE_EXPORTS”, pe lângă fișierul executabil, acum este generat un fișier de import pentru linker, salvat cu extensia „.imp”. În pluginurile create prin apelarea „add_library()” cu opțiunea „MODULE”, acest fișier poate fi folosit atunci când se leagă folosind comanda „target_link_libraries()”. Conectarea la timp de execuție pe AIX este dezactivată în mod implicit, deoarece CMake furnizează acum toate informațiile necesare despre simbol pentru conectarea la momentul încărcării. Pentru a utiliza legarea în timp de execuție a bibliotecilor dinamice sau a modulelor încărcate, trebuie să specificați în mod explicit opțiunile „-Wl, -G” în listele de steaguri de pornire a linkerului, definite prin variabilele „CMAKE_SHARED_LINKER_FLAGS” și „CMAKE_MODULE_LINKER_FLAGS”.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster