„Meson build“ sistemos leidimas 0.52

paskelbta sukurti sistemos leidimą Mezonas 0.52, kuris naudojamas kuriant tokius projektus kaip X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ir GTK+. Mesono kodas parašytas Python ir tiekiama licencijuota pagal Apache 2.0.

Pagrindinis Meson plėtros tikslas yra užtikrinti greitą surinkimo procesą kartu su patogumu ir paprastu naudojimu. Vietoj make-up įrankio numatytoji versija naudoja įrankių rinkinį Ninja, bet taip pat galima naudoti kitas backends, tokias kaip xcode ir VisualStudio. Sistema turi integruotą kelių platformų priklausomybės tvarkyklę, leidžiančią naudoti „Meson“ paskirstymo paketams kurti. Surinkimo taisyklės nurodytos supaprastinta konkrečiam domenui skirta kalba, yra gerai skaitomos ir suprantamos vartotojui (kaip numatė autoriai, kūrėjas turėtų praleisti minimaliai laiko rašydamas taisykles).

Palaikomi kryžmiškai kompiliuoti ir kurti Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ir Windows platformose, naudojant GCC, Clang, Visual Studio ir kitus kompiliatorius. Galima kurti projektus įvairiomis programavimo kalbomis, įskaitant C, C++, Fortran, Java ir Rust. Palaikomas laipsniškas kūrimo režimas, kuriame atkuriami tik komponentai, tiesiogiai susiję su pakeitimais, atliktais po paskutinės versijos. „Meson“ gali būti naudojamas kartojamoms versijoms generuoti, kai paleidus kūrimą skirtingose ​​aplinkose generuojami visiškai identiški vykdomieji failai.

pagrindinis naujoves Mesonas 0.52:

  • Pridėtas eksperimentinis Webassembly palaikymas naudojant Emscripten kaip kompiliatorių;
  • „Ilumos“ ir „Solaris“ platformų palaikymas buvo žymiai patobulintas ir pradėtas veikti;
  • Užtikrina, kad gettext pagrįsti internacionalizavimo scenarijai būtų ignoruojami, jei sistemoje nėra įdiegtas gettext įrankių rinkinys (anksčiau naudojant i18n modulį sistemose be gettext buvo rodoma klaida);
  • Patobulintas statinių bibliotekų palaikymas. Daugelis problemų, susijusių su pašalintomis statinėmis bibliotekomis, buvo išspręstos;
  • Pridėta galimybė naudoti žodynus aplinkos kintamiesiems priskirti. Iškviečiant Environment(), pirmasis elementas dabar gali būti nurodytas kaip žodynas, kuriame aplinkos kintamieji apibrėžiami rakto/vertės forma. Šie kintamieji bus perkelti į Environment_object taip, lyg jie būtų nustatyti atskirai naudojant set() metodą. Žodynai taip pat dabar gali būti perduoti įvairioms funkcijoms, kurios palaiko „env“ argumentą;
  • Pridėta funkcija „runtarget slapyvardis_target(target_name, dep1, ...)“, kuri sukuria naują pirmojo lygio kūrimo tikslą, kurį galima iškviesti naudojant pasirinktą versijos pagrindinę programą (pvz., „ninja target_name“). Šis kūrimo tikslas nevykdo jokių komandų, bet užtikrina, kad visos priklausomybės būtų sukurtos;
  • Įjungtas automatinis aplinkos kintamojo PKG_CONFIG_SYSROOT_DIR nustatymas kryžminio kompiliavimo metu, jei skiltyje „[ypatybės]“ yra sys_root nustatymas;
  • Pridėta parinktis „--gdb-path“, kad būtų nustatytas kelias į GDB derintuvą, kai nurodoma parinktis „--gdb testname“, kad GDB būtų paleista su nurodytu bandomuoju scenarijumi;
  • Pridėtas automatinis skambančio kūrimo tikslo aptikimas, kad būtų galima paleisti šią liniją su visais šaltinio failais. Tikslas sukuriamas, jei sistemoje yra „clang-tidy“ ir „.clang-tidy“ (arba „_clang-tidy“) failas yra apibrėžtas projekto šaknyje;
  • Pridėta priklausomybė („blokai“), skirta naudoti plėtinyje „Clang“. Blokai;
  • Linkerio ir kompiliatoriaus rodiniai yra atskirti, todėl galima naudoti skirtingus kompiliatorių ir nuorodų derinius;
  • Prie SourceSet objektų pridėtas metodas all_dependencies() be all_sources() metodo;
  • Run_project_tests.py buvo pridėta parinktis „--only“, kad būtų galima pasirinktinai vykdyti testus (pvz., „python run_project_tests.py —only fortran python3“);
  • Funkcija find_program() dabar turi galimybę ieškoti tik reikiamų programos versijų (versija nustatoma paleidžiant programą su parinktimi „-version“);
  • Norint valdyti simbolių eksportavimą, prie funkcijos share_module() buvo pridėta parinktis vs_module_defs, panaši į share_library();
  • Modulis kconfig buvo išplėstas, kad palaikytų configure_file(), kad būtų nurodytas įvesties failas;
  • Pridėta galimybė nurodyti kelis įvesties failus „command:“ tvarkytojams, kad būtų galima configure_file ();
  • Archyvo kūrimo komanda „dist“ buvo perkelta į pirmojo lygio komandų kategoriją (anksčiau komanda buvo susieta su „ninja“). Pridėta parinktis „--formats“, kuri apibrėžia kuriamų archyvų tipus (pvz.,
    "meson dist -formats=xztar,zip").

Šaltinis: opennet.ru

Добавить комментарий