Vrystelling van die Meson 1.0-samestellingstelsel

Die vrystelling van die Meson 1.0.0-boustelsel is gepubliseer, wat gebruik word om projekte soos X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK te bou. Die Meson-kode is in Python geskryf en is onder die Apache 2.0-lisensie gelisensieer.

Die sleutelontwikkelingsdoelwit van Meson is om 'n hoëspoedsamestellingsproses te bied, gekombineer met gerief en gemak van gebruik. In plaas van maak, gebruik die bou by verstek die Ninja-gereedskapstel, maar ander backends soos xcode en VisualStudio kan ook gebruik word. Die stelsel het 'n ingeboude multi-platform afhanklikheid hanteerder wat jou toelaat om Meson te gebruik om pakkette vir verspreidings te bou. Samestellingreëls word in 'n vereenvoudigde domeinspesifieke taal opgestel, dit is goed leesbaar en verstaanbaar vir die gebruiker (volgens die outeurs se idee moet die ontwikkelaar 'n minimum tyd spandeer om reëls te skryf).

Kruissamestelling en bou op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows met behulp van GCC, Clang, Visual Studio en ander samestellers word ondersteun. Dit is moontlik om projekte in verskeie programmeertale te bou, insluitend C, C++, Fortran, Java en Rust. 'n Inkrementele boumodus word ondersteun, waarin slegs komponente wat direk verband hou met veranderinge wat aangebring is sedert die laaste bou, herbou word. Meson kan gebruik word om herhaalbare bouwerk te genereer, waar die uitvoering van die bou in verskillende omgewings heeltemal identiese uitvoerbares tot gevolg het.

Belangrikste innovasies van Meson 1.0:

  • Die module vir bouprojekte in die Rust-taal is stabiel verklaar. Hierdie module word in die Mesa-projek gebruik om komponente wat in Rust geskryf is, te bou.
  • Ondersteun deur die meeste samesteller-kontrole-funksies, implementeer die voorvoegselopsie die vermoë om ander skikkings as stringe te hanteer. Byvoorbeeld, nou kan jy spesifiseer: cc.check_header('GL/wglew.h', voorvoegsel: ['#include ', '#insluit '])
  • 'n Nuwe "--workdir"-argument is bygevoeg om jou toe te laat om die werkgids te ignoreer. Byvoorbeeld, om die huidige gids in plaas van die werkgids te gebruik, kan jy hardloop: meson devenv -C builddir --workdir .
  • Nuwe operateurs "in" en "nie in" word voorgestel vir die bepaling van die voorkoms van 'n substring in 'n string, soortgelyk aan die voorheen beskikbare kontrole vir die voorkoms van 'n element in 'n skikking of woordeboek. Byvoorbeeld: fs = import('fs') if 'iets' in fs.read('somefile') # True endif
  • Bygevoeg "waarskuwing-vlak=alles" opsie om uitset van alle beskikbare samesteller waarskuwings aan te skakel (in clang en MSVC gebruike -Weverything en /Wall, en in GCC is afsonderlike waarskuwings ingesluit, wat ongeveer ooreenstem met die -Weverything-modus in clang).
  • Die rust.bindgen-metode implementeer die vermoë om die "afhanklikhede"-argument te verwerk om paaie deur te gee na afhanklikhede wat deur die samesteller verwerk moet word.
  • Die java.generate_native_headers-funksie is afgekeur en hernoem na java.native_headers om by Meson se algemene funksie-benamingstyl te pas.

Bron: opennet.ru

Voeg 'n opmerking