Kõik on valmis: Meson 1.7.0 kogumise süsteemi väljaanne on nüüd saadaval. Seda kasutatakse projektide, nagu X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK, koostamiseks. Mesoni kood on kirjutatud Pythonis ja seda levitatakse Apache 2.0 litsentsi alusel.
Mesoni arendamise peamine eesmärk on tagada ehitusprotsessi kõrge kiirus koos mugavuse ja lihtsusega. Vaikimisi kasutatakse ehitamiseks make tööriista asemel Ninja tööriista, kuid on võimalik kasutada ka teisi taustsüsteeme, nagu Xcode ja Visual Studio. Süsteem sisaldab nelja platvormi sõltuvuste töötlejat, võimaldades Mesonit kasutada pakettide koostamiseks distributsioonide jaoks. Ehitusreeglid määratakse lihtsustatud valdkonnapõhises keeles, mis on hästi loetavad ja arusaadavad kasutajatele (autorite ideede kohaselt peaks arendaja kulutama nende reeglite kirjutamisele minimaalselt aega).
Toetatakse ristkompileerimist ja ehitamist Linuxis, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ja Windowsis, kasutades GCC, Clang, Visual Studio ja teisi kompilaatoreid. Erinevate programmeerimiskeelte, sealhulgas C, C++, Fortran, Java ja Rust projektide ehitamine on võimalik. Toetatakse inkrementaalset ehitusrežiimi, kus uuesti ehitatakse ainult need komponendid, mis on otseselt seotud muudatustega, mis on tehtud alates eelmisest ehitusest. Mesonit saab kasutada reprodutseeritavate ehituste loomiseks, kus ehituse käivitamine erinevates keskkondades toob kaasa täielikult identsete käivitatavate failide genereerimise.
Meson 1.7 põhifunktsioonid:
- Lisatud konstruktsioon «dependency('atomic')», et kontrollida C++ atomaarsete operatsioonide raamatukogu olemasolu.
- Universaalne uus programmeerimiskeel «Linear Asm» (TI asm dialekt, mida toetab TI C6000 kompilaator).
- Rust 2024 keele redaktsiooni tugi (rust_std=2024), mis fikseeritakse Rust 1.85.0 kompilaatori väljaandes.
- Tugi TASKING VX-Toolset kompilaatorile, mida kasutatakse Tricore CPU perekonna jaoks.
- Rust'i projektide jaoks lisati clippy lint-eri käivitamise võimalus.
- Cargo sõltuvuste seadistamisel tagatakse kogu sõltuvuspuu ja kõik saadaval olevad funktsioonid määramine. See toiming viiakse läbi enne AST (abstraktse sünteesi puu) genereerimist allprojekti jaoks, mis välistab võimalused, mis on määratud põhprojekti kaudu 'default_options' parameetri kaudu.
- External_project moodulis on tagatud keskkonnamuutujate PATH ja LD_LIBRARY_PATH seadistamine programmide õigeks käivitamiseks.
- Käsku «format» on lisatud toetus argumendile «stdin», et lugeda andmeid standardse sisendi voost, mitte failist.
- Käsk «meson test» ei käivita nüüd vaikimisi täielikku kompileerimist (ei kutsu esile «ninja all»), ning «ninja all» ei teosta kõigi testide uuesti kompileerimist.
- Käsku vcs_tag() on lisatud toetus argumentidele «install», «install_dir», «install_tag» ja «install_mode» genereeritud faili installimiseks.
- Lisatud keskkonnamuutuja MESON_NUM_PROCESSES, mis kajastab tütarprotsesside arvu, mis on käivitatud ehituse paralleelimiseks. Muutujat saab kasutada näiteks käskudes meson test, moodulis external_project ja Ninja käsitlejates, mis käivitavad clang-tidy, clang-format ja clippy.
Allikas: opennet.ru
