Kutolewa kwa mfumo wa Meson 0.52

iliyochapishwa kuunda kutolewa kwa mfumo Meson 0.52, ambayo hutumika kujenga miradi kama vile Seva ya X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME na GTK+. Nambari ya Meson imeandikwa kwa Python na hutolewa leseni chini ya Apache 2.0.

Lengo kuu la maendeleo ya Meson ni kutoa kasi ya juu ya mchakato wa mkutano pamoja na urahisi na urahisi wa matumizi. Badala ya kutengeneza matumizi, muundo chaguomsingi hutumia zana ya zana Ninja, lakini pia inawezekana kutumia viambajengo vingine, kama vile xcode na VisualStudio. Mfumo una kidhibiti cha utegemezi cha majukwaa mengi ambacho hukuruhusu kutumia Meson kuunda vifurushi vya usambazaji. Sheria za mkusanyiko zimebainishwa katika lugha iliyorahisishwa mahususi ya kikoa, zinaweza kusomeka na kueleweka kwa mtumiaji (kama ilivyokusudiwa na waandishi, msanidi programu anapaswa kutumia muda mdogo kuandika sheria).

Imeungwa mkono kusanya na ujenge kwenye Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS na Windows kwa kutumia GCC, Clang, Visual Studio na wakusanyaji wengine. Inawezekana kujenga miradi katika lugha mbalimbali za programu, ikiwa ni pamoja na C, C ++, Fortran, Java na Rust. Hali ya ongezeko la ujenzi inatumika, ambapo vipengele pekee vinavyohusiana moja kwa moja na mabadiliko yaliyofanywa tangu muundo wa mwisho hujengwa upya. Meson inaweza kutumika kutengeneza miundo inayoweza kurudiwa, ambayo kuendesha jengo katika mazingira tofauti husababisha kizazi cha faili zinazoweza kutekelezwa zinazofanana kabisa.

kuu ubunifu Meson 0.52:

  • Imeongeza usaidizi wa majaribio kwa Webassembly kwa kutumia Emscripten kama mkusanyaji;
  • Usaidizi wa majukwaa ya Illumos na Solaris umeboreshwa kwa kiasi kikubwa na kuletwa katika hali ya kufanya kazi;
  • Inahakikisha kuwa hati za utandawazi kulingana na maandishi zinapuuzwa ikiwa mfumo hauna zana ya kupata maandishi iliyosakinishwa (hapo awali, hitilafu ilionyeshwa wakati wa kutumia moduli ya i18n kwenye mifumo bila gettext);
  • Usaidizi ulioboreshwa kwa maktaba tuli. Matatizo mengi wakati wa kutumia maktaba tuli yasiyosakinishwa yametatuliwa;
  • Imeongeza uwezo wa kutumia kamusi kugawa anuwai za mazingira. Wakati wa kupiga simu mazingira(), kipengele cha kwanza sasa kinaweza kubainishwa kama kamusi ambayo vigeu vya mazingira vinafafanuliwa katika umbo la ufunguo/thamani. Vigezo hivi vitahamishiwa kwa mazingira_object kana kwamba vimewekwa kibinafsi kupitia set() mbinu. Kamusi pia sasa zinaweza kupitishwa kwa kazi mbalimbali zinazounga mkono hoja ya "env";
  • Chaguo za kukokotoa zilizoongezwa "runtarget alias_target(target_name, dep1, ...)" ambayo huunda shabaha mpya ya ujenzi ya ngazi ya kwanza ambayo inaweza kuitwa kwa mandharinyuma ya ujenzi iliyochaguliwa (k.m. "ninja target_name"). Lengo hili la ujenzi haliendeshi amri zozote, lakini huhakikisha kuwa vitegemezi vyote vimejengwa;
  • Umewasha mpangilio wa kiotomatiki wa kigeu cha mazingira cha PKG_CONFIG_SYSROOT_DIR wakati wa ujumuishaji mtambuka ikiwa kuna mpangilio wa sys_root katika sehemu ya "[mali]";
  • Imeongezwa chaguo la "--gdb-path" ili kubainisha njia ya kitatuzi cha GDB wakati wa kubainisha chaguo la "--gdb testname" ili kuendesha GDB kwa hati maalum ya majaribio;
  • Imeongeza ugunduzi wa kiotomatiki wa lengo la muundo wa clang-nadhifu ili kuendesha linter hii na faili zote asili. Lengo linaundwa ikiwa clang-tidy inapatikana katika mfumo na faili ya ".clang-tidy" (au "_clang-tidy") imefafanuliwa kwenye mzizi wa mradi;
  • Utegemezi ulioongezwa('blocks') kwa matumizi katika kiendelezi cha Clang Vitalu;
  • Maoni ya kiunganishi na ya mkusanyaji yametenganishwa, kuruhusu michanganyiko tofauti ya wakusanyaji na viunganishi kutumika;
  • Aliongeza all_dependencies() mbinu kwa SourceSet vitu pamoja na all_sources() mbinu;
  • Katika run_project_tests.py, chaguo la "--only" limeongezwa ili kufanya majaribio kwa kuchagua (kwa mfano, "python run_project_tests.py -only fortran python3");
  • Kazi ya find_program() sasa ina uwezo wa kutafuta tu matoleo yanayohitajika ya programu (toleo limedhamiriwa kwa kuendesha programu na chaguo la "-version");
  • Ili kudhibiti usafirishaji wa alama nje, chaguo la vs_module_defs limeongezwa kwenye kitendakazi cha shared_module(), sawa na shared_library();
  • Moduli ya kconfig imepanuliwa ili kusaidia configure_file() kwa kubainisha faili ya ingizo;
  • Aliongeza uwezo wa kubainisha faili nyingi za ingizo za vidhibiti vya "amri:" ili kusanidi_file();
  • Amri ya "dist" ya kuunda kumbukumbu imehamishwa hadi kategoria ya amri za kiwango cha kwanza (hapo awali amri ilikuwa imefungwa kwa ninja). Imeongezwa chaguo la "--formats" kufafanua aina za kumbukumbu zitakazoundwa (kwa mfano,
    "meson dist -formats=xztar,zip").

Chanzo: opennet.ru

Kuongeza maoni