Mesoni 1.6.0 kogumissüsteemi väljalase

Avaldatud on Meson 1.6.0 kogumisseade versioon, mida kasutatakse selliste projektide nagu X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK koostamiseks. Mesoni kood on kirjutatud Pythonis ja see on litsentseeritud Apache 2.0 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.6 põhijooned:

  • Lisatud on käsk «meson reprotest» korduvate koostamiste testimiseks.
  • Lisatud on tugi LLVM projekti arendatavale flang kompilaatorile.
  • Lisatud on tugi SDK DIA (Debug Interface Access), mis võimaldab lugeda silumise teavet PDB formaadis, mida kasutatakse Windowsi platvormil.
  • NVIDIA kompilaatorites nvc ja nvc++ on võimalik valida C ja C++ standardeid. nvc puhul: c89, c90, c99, c11, c17, c18, gnu90, gnu89, gnu99, gnu11, gnu17, gnu18. nvc++ puhul: c++98, c++03, c++11, c++14, c++17, c++20, c++23, gnu++98, gnu++03, gnu++11, gnu++14, gnu++17, gnu++20.
  • Lisatud on võimalus tuvastada Qt spetsiifiliste utiliitide (moc, uic, rcc ja lrelease) olemasolu, kasutades funksiooni has_tools() imporditud Qt koostamismoodulite jaoks.
  • Avatud on võimalus kasutada OpenXL kompilaatorit AIX platvormil (lisaks eelnevalt toetatud GCC-le).
  • Vaikimisi on sisse lülitatud kõikide vananenud funktsioonide hoiatuste väljund, kui project() funktsioonis ei ole määratud minimumnõue Mesonile koostatavale projektile.
  • Lisatud on tugi muutujate kasutamiseks süsteemisõltuvustes (get_variable() meetodis).
  • Lisatud on hoiatus, et toimetatakse eksperimentaalset tuge Cargo alamprojektide jaoks.
  • CMake'i alamprojektidest saadud sõltuvustes on nüüd lubatud kasutada ainult linkimisflage, mis on CMake'is märgitud kui PUBLIC või INTERFACE (PRIVATE'iga tähistatud flage rakendatakse ainult alamprojekti teegi koostamisel, mitte sõltuvusena kasutamisel).
  • Lisatud on valik default_both_libraries, mis võimaldab üle kirjutada vaikimisi käitumist koostamise eesmärgil both_libraries.
  • Sisese sõltuvuste jaoks, mis tagastatakse declare_dependency() funktsiooniga, on rakendatud meetodid as_static ja as_shared sõltuvuste loendi teisendamiseks arvutades staatilist või dünaamilist sidumist.
  • test() ja benchmark() funktsioonidesse on lisatud võimalus määrata, et kontrollitav täitmisfail on teiste programmide kutsumisel ümbritsetud. Näiteks: test(‘some_test’, find_program(‘sudo’), args : [ find_program(‘sh’), ‘script.sh’ ])
  • Lisatud on tugi kasutada Clangi asemel Zig 0.11 keele tööriistakomplekti pakutud C/C++ kompilaatori front-end'i.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster