Kutolewa kwa mfumo wa Meson 1.1

Mfumo wa uundaji wa Meson 1.1.0 umetolewa, ambao unatumika kujenga miradi kama vile Seva ya X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME na GTK. Nambari ya Meson imeandikwa kwa Python na ina leseni chini ya leseni 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, zana ya zana ya Ninja hutumiwa kwa chaguo-msingi wakati wa kujenga, lakini viunzi vingine vya nyuma kama vile xcode na VisualStudio pia vinaweza kutumika. 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).

Inasaidia ujumuishaji na ujenzi kwenye Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS na Windows kwa kutumia GCC, Clang, Visual Studio na vikusanyaji vingine. 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.

Ubunifu kuu wa Meson 1.1:

  • Hoja mpya ya "objects:" imeongezwa kwa declare_dependency() ili kuambatisha vitu moja kwa moja kwenye utekelezo kwa njia ya vitegemezi vya ndani ambavyo havihitaji matumizi ya link_who.
  • Amri ya "meson devenv -dump" sasa ina chaguo la kubainisha faili kuandika vigeu vya mazingira badala ya kuichapisha kwa matokeo ya kawaida.
  • Aliongeza FeatureOption.enable_if na FeatureOption.disable_if mbinu ili kurahisisha kuunda masharti katika maandalizi ya kupitisha vigezo kwa chaguo la kukokotoa tegemezi(). opt = get_option('feature').disable_if(not foo, error_message : 'Haiwezi kuwasha kipengele wakati foo haijawashwa pia') dep = dependency('foo', required : opt)
  • Kupitisha vitu vilivyozalishwa kama hoja kwa "vitu:" kunaruhusiwa.
  • Utendakazi wa mradi sasa unaauni usakinishaji wa faili zilizo na maelezo kuhusu leseni za mradi.
  • Kuendesha "sudo meson install" huhakikisha kuwa hakimiliki zinawekwa upya wakati wa uundaji upya wa majukwaa lengwa.
  • Amri ya "meson install" hutoa uwezo wa kubainisha kidhibiti tofauti cha kupata haki za mizizi (kwa mfano, unaweza kuchagua polkit, sudo, opendoas au $MESON_ROOT_CMD). Kuendesha "meson install" katika hali isiyo ya mwingiliano hajaribu tena kuongeza upendeleo.
  • Usaidizi ulioongezwa kwa chaguo za kusoma kutoka kwa faili ya meson.options badala ya meson_options.txt.
  • Uelekezaji upya wa habari kuhusu maendeleo ya ukaguzi kwa stderr umetolewa.
  • Imeongeza mandharinyuma mpya ya "hakuna" (--backend=none) ili kuunda miradi ambayo ina sheria za usakinishaji pekee na hakuna sheria za ujenzi.
  • Imeongeza pybind11 mpya ya utegemezi, ikiruhusu utegemezi('pybind11') kufanya kazi na pkg-config na cmake bila kutumia hati ya pybind11-config.
  • Chaguzi za "--reconfigure" na "--wipe" zinaruhusiwa (meson setup --reconfigure builddir na meson setup --wipe builddir ) na builddir tupu.
  • Umeongeza usaidizi wa neno kuu la dry_run kwa meson.add_install_script() ili kuruhusu utendakazi wa hati zako za usakinishaji unapoita "meson install --dry-run".

Chanzo: opennet.ru

Kuongeza maoni