Mesoni ehitussüsteemi väljalase 0.52

avaldatud luua süsteemi väljalase Meson 0.52, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK+. Mesoni kood on kirjutatud Pythonis ja varustatud litsentsitud Apache 2.0 alusel.

Mesoni arenduse põhieesmärk on pakkuda kiiret montaažiprotsessi koos mugavuse ja kasutuslihtsusega. Make-utiliidi asemel kasutab vaikejärg tööriistakomplekti Ninja, kuid on võimalik kasutada 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 määratletud lihtsustatud domeenispetsiifilises keeles, on hästi loetavad ja kasutajale arusaadavad (nagu autorid on ette näinud, peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatud ristkompileerida ja ehitada Linuxile, Illumos/Solarisele, FreeBSD-le, NetBSD-le, DragonFly BSD-le, Haikule, macOS-ile ja Windowsile, kasutades GCC, Clangi, Visual Studio ja muid kompilaatoreid. Võimalik on ehitada projekte erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatud on järkjärguline ehitusrežiim, milles ehitatakse ümber ainult need komponendid, mis on otseselt seotud pärast viimast ehitamist tehtud muudatustega. Mesonit saab kasutada korratavate ehituste genereerimiseks, mille puhul ehitamist erinevates keskkondades käivitades genereeritakse täiesti identsed käivitatavad failid.

Kõik uuendused Meson 0.52:

  • Lisatud Webassembly eksperimentaalne tugi, kasutades kompilaatorina Emscriptenit;
  • Illumose ja Solarise platvormide tugi on oluliselt täiustatud ja töökorda viidud;
  • Tagab gettexti-põhiste rahvusvahelistumise skriptide ignoreerimise, kui süsteemi pole installitud gettexti tööriistakomplekti (varem kuvati i18n mooduli kasutamisel ilma gettextita süsteemides viga);
  • Staatiliste teekide täiustatud tugi. Paljud probleemid desinstallitud staatiliste teekide kasutamisel on lahendatud;
  • Lisati võimalus kasutada keskkonnamuutujate määramiseks sõnastikke. Environment() kutsumisel saab nüüd esimese elemendi määrata sõnaraamatuna, milles keskkonnamuutujad on määratletud võtme/väärtuse kujul. Need muutujad kantakse üle keskkonna_objekti nii, nagu oleksid need individuaalselt määratud meetodi set() abil. Sõnaraamatuid saab nüüd edasi anda ka erinevatele funktsioonidele, mis toetavad argumenti "env";
  • Lisatud funktsioon "runtarget alias_target(sihtmärgi_nimi, dep1, ...)", mis loob uue esimese taseme järgu sihtmärgi, mida saab valitud järgu taustaprogrammiga välja kutsuda (nt "ninja sihtmärgi_nimi"). See koostamise sihtmärk ei käivita ühtegi käsku, kuid tagab kõigi sõltuvuste loomise;
  • Lubatud keskkonnamuutuja PKG_CONFIG_SYSROOT_DIR automaatne seadistamine ristkompileerimise ajal, kui jaotises [properties] on sys_root säte;
  • Lisatud suvand "--gdb-path", et määrata GDB siluri tee, kui määrate suvandi "--gdb testname" GDB käitamiseks määratud testskriptiga;
  • Selle linteri käitamiseks koos kõigi lähtefailidega on lisatud automaatse klappiva ehituse sihtmärgi tuvastamine. Sihtmärk luuakse, kui süsteemis on saadaval clang-tidy ja faili ".clang-tidy" (või "_clang-tidy") on määratletud projekti juurtes;
  • Lisatud sõltuvus ('blokid') kasutamiseks Clangi laiendis Plokid;
  • Linkeri ja kompilaatori vaated on eraldatud, võimaldades kasutada erinevaid kompilaatorite ja linkerite kombinatsioone;
  • All_dependencies() meetod lisati SourceSet objektidele lisaks all_sources() meetodile;
  • Dokumendis run_project_tests.py on testide valikuliseks käitamiseks lisatud valik "--only" (näiteks "python run_project_tests.py —only fortran python3");
  • Funktsioonil find_program() on nüüd võimalus otsida ainult programmi vajalikke versioone (versiooni määrab programmi käivitamine valikuga "-version");
  • Sümbolite ekspordi juhtimiseks on jagatud_module() funktsioonile lisatud suvand vs_module_defs, sarnaselt jagatud_library();
  • Moodulit kconfig on laiendatud nii, et see toetab sisendfaili määramiseks configure_file();
  • Configure_file();
  • Arhiivi loomise käsk “dist” on viidud esimese taseme käskude kategooriasse (varem oli käsk seotud ninjaga). Lisatud on suvand "--formats", et määrata loodavate arhiivide tüübid (näiteks
    "meson dist -formats=xztar,zip").

Allikas: opennet.ru

Lisa kommentaar