Meson-konstrua sistemo eldono 1.0

La eldono de la konstrusistemo Meson 1.0.0 estis publikigita, kiu estas uzata por konstrui projektojn kiel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME kaj GTK. La Meson-kodo estas skribita en Python kaj estas licencita laŭ la permesilo Apache 2.0.

La ŝlosila disvolva celo de Meson estas provizi altrapidan kunigprocezon kombinitan kun oportuno kaj facileco de uzo. Anstataŭ fari, la konstruo uzas la Ninja ilaron defaŭlte, sed aliaj backends kiel xcode kaj VisualStudio ankaŭ povas esti uzataj. La sistemo havas enkonstruitan plurplatforman dependectraktilon, kiu permesas vin uzi Meson por konstrui pakaĵojn por distribuoj. Asembleaj reguloj estas fiksitaj en simpligita domajna specifa lingvo, ili estas bone legeblaj kaj kompreneblaj por la uzanto (laŭ la ideo de la aŭtoroj, la programisto devus pasigi minimume da tempo skribante regulojn).

Transkompilado kaj konstruado sur Linukso, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS kaj Vindozo uzante GCC, Clang, Visual Studio kaj aliajn kompililojn estas subtenataj. Eblas konstrui projektojn en diversaj programlingvoj, inkluzive de C, C++, Fortran, Java kaj Rust. Pliiga konstrureĝimo estas subtenata, en kiu nur komponentoj kiuj estas rekte rilataj al ŝanĝoj faritaj ekde la lasta konstruo estas rekonstruitaj. Meson povas esti uzata por generi ripeteblajn konstruojn, kie funkcii la konstruon en malsamaj medioj rezultigas tute identajn ruleblajn konstruaĵojn.

Ĉefaj inventoj de Meson 1.0:

  • La modulo por konstrui projektojn en la Rust-lingvo estis deklarita stabila. Ĉi tiu modulo estas uzata en la Mesa projekto por konstrui komponantojn skribitajn en Rust.
  • Subtenata de plej multaj kompililkontrolaj funkcioj, la prefiksa opcio efektivigas la kapablon pritrakti tabelojn krom ĉenoj. Ekzemple, nun vi povas specifi: cc.check_header('GL/wglew.h', prefikso : ['#include ', '#inkluzivi '])
  • Nova argumento "--workdir" estis aldonita por permesi al vi superregi la labordosierujon. Ekzemple, por uzi la nunan dosierujon anstataŭ la labordosierujon, vi povas ruli: meson devenv -C builddir --workdir .
  • Novaj funkciigistoj "en" kaj "ne en" estas proponitaj por determini la okazon de subĉeno en ĉeno, simile al la antaŭe havebla kontrolo por la okazo de elemento en tabelo aŭ vortaro. Ekzemple: fs = import('fs') if 'io' en fs.read('somefile') # Vera endif
  • Aldonita "warning-level=everything" opcio por ŝalti eligon de ĉiuj disponeblaj kompililavertoj (en clang kaj MSVC uzas -Weverything kaj /Wall, kaj en GCC apartaj avertoj estas inkluzivitaj, proksimume respondante al la -Weverything-reĝimo en clang).
  • La rust.bindgen-metodo efektivigas la kapablon prilabori la "dependecajn" argumenton por pasi vojojn al dependecoj kiuj devus esti prilaboritaj de la kompililo.
  • La funkcio java.generate_native_headers estis malrekomendita kaj renomita al java.native_headers por kongrui kun la ĝenerala funkcio-nomstilo de Meson.

fonto: opennet.ru

Aldoni komenton