Kogumissüsteemi Meson 1.1 väljalase.

Avaldatud on Meson 1.1.0 versioon, mis on mõeldud selliste projektide nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK koostamiseks. Mesoni kood on kirjutatud Pythonis ja see on litsentseeritud Apache 2.0 alusel.

Mesoni arengu peamine eesmärk on tagada kiire kogumise protsess koos mugavuse ja lihtsusega. Vaikimisi kasutatakse kogumise jaoks make'i asemel Ninja tööriistu, kuid on võimalik kasutada ka muid tagaplaneeringuid, nagu xcode ja VisualStudio. Süsteemis on integreeritud mitme platvormi sõltuvuste haldur, mis võimaldab Mesonit kasutada distributsioonide paketide koostamiseks. Koostamisreeglid on määratud lihtsustatud ainealases keeles, mis on hea loetavusega ja arusaadav kasutajale (autoritelt on kavandatud, et arendaja peaks reeglite kirjutamiseks võimalikult vähe aega kulutama).

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.1 põhijooned:

  • declare_dependency() -sse on lisatud uus argument "objects:" objektide otse käivitatavatele failidele lisamiseks sisemiste sõltuvustena, mis ei nõua link_who rakendamist.
  • Käsku "meson devenv --dump" on täiendatud valikulise võimalusega määrata fail keskkonnamuutujate kirjutamiseks, selle asemel et väljastada need standardsele väljundvoolule.
  • Lisatud meetodid FeatureOption.enable_if ja FeatureOption.disable_if, et lihtsustada tingimuslike konstruktsioonide loomist parameetrite edastamiseks funktsiooni dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Cannot enable feature when foo is not also enabled') dep = dependency('foo', required : opt)
  • Lubatud on genereeritud objektide edastamine argumendina «objects:».
  • Funktsioonis project on rakendatud projekti litsentsiteabe failide installimise toetust.
  • Käivitades «sudo meson install», tagatakse privileegide tühistamine sihttöötluste ümberkompileerimise ajal.
  • Käskluses «meson install» on võimalik määrata eraldi töötleja root õiguste saamiseks (näiteks võib valida polkit, sudo, opendoas või $MESON_ROOT_CMD). Kui «meson install» käivitatakse mitte interaktiivses režiimis, ei tehta enam katseid privileegide tõstmiseks.
  • Lisatud tugi valikute lugemiseks failist meson.options, mitte meson_options.txt.
  • Tagatud on stderr-i kaudu infoväljundi suunamine introspektsiooni edenemise kohta.
  • Lisatud uus tagaplaneering «none» (—backend=none) projektide loomiseks, millel on ainult paigaldusreeglid ja ei sisalda kokkuvõtte reegleid.
  • Uuendatud on sõltuvus pybind11, mis võimaldab dependency(‘pybind11’) töötamist pkg-configi ja cmake'iga ilma pybind11-config skripti kasutamiseta.
  • Lubatud on kasutada valikuid «—reconfigure» ja «—wipe» (meson setup —reconfigure builddir ja meson setup —wipe builddir) tühja builddir'i korral.
  • funktsioonis meson.add_install_script() on lisatud dry_run võtmesõna tugi, võimaldades käivitada isiklikke installatsiooniskeeme käskluse «meson install —dry-run» kutsumise ajal.

Allikas: opennet.ru

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