A fost lansată versiunea multiplatformă a generatorului de scenarii de construire CMake 3.21, care servește ca o alternativă la Autotools și este utilizat în proiecte precum KDE, LLVM/Clang, MySQL, MariaDB, ReactOS și Blender. Codul CMake este scris în limbajul 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.
Îmbunătățiri principale:
- A fost adăugat suport complet pentru limbajul de programare HIP (Heterogeneous-Computing Interface for Portability), un dialect al limbajului C++, destinat simplificării conversiei aplicațiilor CUDA în cod C++ portabil.
- A fost adăugat un generator de scenarii de construcție pentru Visual Studio 17 2022, bazat pe versiunea prealabilă Visual Studio 2022 Preview 1.1.
- În generatorii de scenarii de construcție Makefile și Ninja au fost adăugate proprietățile C_LINKER_LAUNCHER și CXX_LINKER_LAUNCHER, care permit organizarea execuției utilitarelor auxiliare care lansează linker-ul, cum ar fi analizorii statici. Generatorul va rula utilitarele specificate, transmițându-le numele linker-ului și argumentele sale.
- În proprietățile „C_STANDARD” și „OBJC_STANDARD”, precum și în instrumentele pentru configurarea opțiunilor de compilare (Compile Features), a fost adăugat suport pentru specificațiile C17 și C23.
- În utilitarul cmake a fost adăugată opțiunea „—toolchain ” pentru a specifica calea către un instrumentar.
- A fost asigurat evidențierea tipurilor de mesaje generate în terminal.
- A fost adăugat suport pentru compilatorul Fujitsu.
- În comanda „foreach()” a fost asigurată izolarea variabilelor de ciclu în interiorul ciclului.
De asemenea, se remarcă lansarea sistemului de construcție Meson 0.59, utilizat pentru construirea proiectelor, cum ar fi X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME și GTK. Codul Meson este scris în limbajul Python și este livrat sub licența Apache 2.0. Se sprijină compilarea încrucișată și construcția în Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS și Windows folosind GCC, Clang, Visual Studio și altele. Este posibilă construcția proiectelor în diverse limbaje de programare, inclusiv C, C++, Fortran, Java și Rust. În locul utilitarului make, se utilizează implicit instrumentarul Ninja pentru construcție, dar este posibilă utilizarea și altor backend-uri, cum ar fi xcode și VisualStudio.
Sistemul include un procesor multi-platformă pentru gestionarea dependențelor, care permite utilizarea Meson pentru construirea pachetelor pentru distribuții. Reguli de construcție sunt definite într-un limbaj orientat pe obiect simplificat, care se distinge prin lizibilitate bună și este ușor de înțeles pentru utilizatori (conform autorilor, dezvoltatorul ar trebui să petreacă cât mai puțin timp posibil în scrierea regulilor). Este suportat modul incremental de construcție, în care sunt reconstruite doar componentele direct legate de modificările efectuate de la ultima construcție. Meson poate fi utilizat pentru a genera construcții repetabile, în care rularea construcției în diferite medii duce la generarea unor fișiere executabile complet identice.
Noutăți principale în Meson 0.59:
- A fost adăugat suport pentru limbajul Cython (o variantă extinsă a Python-ului, destinat simplificării integrării cu codul în limbajul C).
- Au fost adăugate cuvintele cheie „unescaped_variables” și „unescaped_uninstalled_variables” pentru a defini variabile în pkgconfig fără a scăpa spațiile cu simbolul „\”.
- A fost adăugat suport pentru wrc (Wine Resource Compiler).
- A fost implementată posibilitatea de a genera proiecte pentru Visual Studio 2012 și Visual Studio 2013.
- Toate comenzile legate de procesarea subproiectelor acum pornesc implicit fiecare subproiect în paralel. Numărul de procese care rulează în paralel este determinat de parametrul „—num-processes”.
Sursa: opennet.ro
