lansarea unui generator de scenarii de construcție open-source, multiplatformă , 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 :
- A fost adăugată suport inițial pentru limbaj în generatorul de scenarii de compilare bazat pe instrumentul Ninja. , dezvoltat de compania Apple;
- A fost adăugat suport pentru varianta de compilator Clang pentru Windows, care realizează compilarea cu ABI MSVC, dar folosește opțiunile din linia de comandă în stil GNU;
- Au fost adăugate variabilele CMAKE_MSVC_RUNTIME_LIBRARY și MSVC_RUNTIME_LIBRARY pentru a alege bibliotecile de runtime utilizate de compilatorii bazati pe ABI MSVC (MS Visual Studio);
- Pentru compilatoarele de tip MSVC, enumerările opțiunilor pentru controlul avertizărilor, cum ar fi "/W3" au fost eliminate din CMAKE__FLAGS în mod implicit;
- A fost adăugat expresia generatorului „COMPILE_LANG_AND_ID:” pentru a determina opțiunile compilatorului pentru fișierele țintă care utilizează variabilele CMAKE__COMPILER_ID și LANGUAGE pentru fiecare fișier de cod;
- În expresiile generatorului C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID și PLATFORM_ID a fost adăugată suport pentru asocierea unui singur valorii cu o listă, elementele fiind separate prin virgulă; - A fost adăugată variabila CMAKE_FIND_PACKAGE_PREFER_CONFIG, prin care apelul find_package() va căuta mai întâi fișierul de configurație al pachetului, chiar dacă un modul de căutare este disponibil;
- Pentru bibliotecile interfață a fost adăugată suport pentru a seta proprietățile PUBLIC_HEADER și PRIVATE_HEADER, ale căror antete pot fi stabilite prin comanda install(TARGETS) prin transmiterea argumentelor PUBLIC_HEADER și PRIVATE_HEADER;
- A fost adăugată variabila CMAKE_VS_JUST_MY_CODE_DEBUGGING și proprietatea țintă VS_JUST_MY_CODE_DEBUGGING pentru a activa modul „Just My Code” în debuggerul Visual Studio atunci când se compilează folosind MSVC cl 19.05 și versiuni mai recente;
- Modulul FindBoost a fost revizuit, acum funcționează mai integrat în modurile Config și Module atunci când există alte module de căutare;
- În comanda message() a fost adăugată suport pentru tipurile NOTICE, VERBOSE,
DEBUG și TRACE; - Comanda „export(PACKAGE)” nu face nimic acum, până când nu este explicit activată prin variabila CMAKE_EXPORT_PACKAGE_REGISTRY.
Sursa: opennet.ro
