Mesoni ehitussüsteemi väljalase 1.1

Avaldatud on Meson 1.1.0 ehitussüsteemi väljalase, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Mesoni kood on kirjutatud Pythonis ja litsentsitud Apache 2.0 litsentsi alusel.

Mesoni arenduse põhieesmärk on pakkuda kiiret montaažiprotsessi koos mugavuse ja kasutuslihtsusega. Make asemel kasutab järg vaikimisi Ninja tööriistakomplekti, kuid kasutada saab ka muid taustaprogramme, nagu xcode ja VisualStudio. Süsteemil on sisseehitatud mitme platvormi sõltuvuse töötleja, mis võimaldab kasutada Mesonit distributsioonide pakettide koostamiseks. Koostereeglid on seatud lihtsustatud domeenipõhises keeles, need on hästi loetavad ja kasutajale arusaadavad (autorite idee kohaselt peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatud on Linuxi, Illumos/Solarise, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS-i ja Windowsi ristkompileerimine ja ehitamine GCC, Clangi, Visual Studio ja muude kompilaatorite abil. Võimalik on ehitada projekte erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatakse järkjärgulist ehitusrežiimi, milles ehitatakse ümber ainult need komponendid, mis on otseselt seotud pärast viimast ehitamist tehtud muudatustega. Mesonit saab kasutada korratavate ehituste genereerimiseks, kus ehitamist erinevates keskkondades käivitades saadakse täiesti identsed käivitatavad failid.

Meson 1.1 peamised uuendused:

  • Funktsiooni deklaratsiooni_dependency() jaoks on lisatud uus argument "objektid:", et lisada objekte otse käivitatavatele failidele sisemiste sõltuvustena, mis ei nõua link_who-d.
  • Käsul "meson devenv --dump" on valikuline võimalus määrata faili, kuhu keskkonnamuutujad kirjutada, selle asemel, et standardväljundvoogu väljastada.
  • Lisati meetodid FeatureOption.enable_if ja FeatureOption.disable_if, et hõlbustada tingimustingimuste loomist, valmistudes parameetrite edastamiseks funktsioonile dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Funktsiooni ei saa lubada, kui foo pole samuti lubatud') dep = dependency('foo', nõutav : opt)
  • Loodud objekte on lubatud edastada argumentide "objektid:" hulgast.
  • Projektifunktsioon toetab projektilitsentside teabega failide installimist.
  • "Sudo mesoni installi" käivitamine tagab sihtplatvormide ümberehitamise ajal privileegide lähtestamise.
  • Käsk "meson install" annab võimaluse määrata juurõiguste hankimiseks eraldi töötleja (saate valida näiteks polkiti, sudo, opendoas või $MESON_ROOT_CMD). "Mesoni installi" käivitamine mitteinteraktiivses režiimis ei püüa enam õigusi tõsta.
  • Lisatud on tugi suvandite lugemiseks failist meson.options faili meson_options.txt asemel.
  • Tagas sisekaemuse edenemise teabe väljundi ümbersuunamise stderrile.
  • Lisati uus taustaprogramm "puudub" (--backend=none), et luua projekte, millel on ainult installireeglid ja millel pole ehitusreegleid.
  • Lisatud on uus sõltuvus pybind11, et dependency('pybind11') töötaks koos pkg-config ja cmake skripti pybind11-config kasutamata.
  • Suvandid "--reconfigure" ja "--wipe" (meson setup --reconfigure builddir ja meson setup --wipe builddir ) on lubatud tühja builddir-iga.
  • meson.add_install_script() lisas toe märksõnale dry_run, mis võimaldab teil käivitada oma installiskripte, kui kutsute "meson install --dry-run".

Allikas: opennet.ru

Lisa kommentaar