Utgivelse av Meson 0.58 monteringssystem. Prosjekt for å lage en implementering av Meson i C-språk

Utgivelsen av Meson 0.58 byggesystemet er publisert, som brukes til å bygge prosjekter som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME og GTK. Meson-koden er skrevet i Python og er lisensiert under Apache 2.0-lisensen.

Det viktigste utviklingsmålet til Meson er å gi en høyhastighets monteringsprosess kombinert med bekvemmelighet og brukervennlighet. I stedet for å lage bruker bygningen Ninja-verktøysettet som standard, men andre backends som xcode og VisualStudio kan også brukes. Systemet har en innebygd multi-plattform avhengighetsbehandler som lar deg bruke Meson til å bygge pakker for distribusjoner. Monteringsregler er satt på et forenklet domenespesifikt språk, de er godt lesbare og forståelige for brukeren (i følge forfatternes idé bør utvikleren bruke minimum tid på å skrive regler).

Krysskompilering og bygging på Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS og Windows ved å bruke GCC, Clang, Visual Studio og andre kompilatorer støttes. Det er mulig å bygge prosjekter i ulike programmeringsspråk, inkludert C, C++, Fortran, Java og Rust. En inkrementell byggemodus støttes, der bare komponenter som er direkte relatert til endringer som er gjort siden siste konstruksjon, gjenoppbygges. Meson kan brukes til å generere repeterbare bygg, der kjøring av bygget i forskjellige miljøer resulterer i helt identiske kjørbare filer.

Hovedinnovasjoner av Meson 0.58:

  • Meson har innebygde strengformateringsoperasjoner. I stedet for å kalle formatmetoden, kan du nå erstatte verdier direkte, for eksempel, i stedet for "'En streng @0@ som skal formateres @1@'.format(n, m)" kan du umiddelbart spesifisere "f" En streng @n@ som skal formateres @ m@'".
  • En "erstatt"-metode er lagt til strengobjekter for å utføre operasjonen med å erstatte en delstreng med en annen, for eksempel "s = s.replace('aaa', 'bbb')".
  • Lagt til "range(start, stop[, step])" funksjon for å returnere et objekt som kan brukes i en foreach loop, for eksempel "foreach i : range(15)".
  • Meson.add_devenv()-metoden er implementert, slik at du kan legge til et environment()-objekt for å sette miljøvariabler når du bruker kommandoen "meson devenv", for eksempel for å sette en miljøvariabel med banen til plugins-katalogen.
  • For utviklingsmiljøer er det foreslått en ny kommando: "meson devenv -C builddir [<kommando>], som gjør det mulig å kjøre kommandoen i et miljø konfigurert til å starte prosjekter fra byggekatalogen (uten installasjon).
  • Som standard stoppes "-pipe"-alternativet å sendes når du kjører alle støttede kompilatorer.
  • Å kalle meson.add_dist_script() fra underprosjekter er tillatt.
  • Gir muligheten til å kjøre metodene append() og prepend() flere ganger på samme miljø()-objekt.
  • Feil()-funksjonen tillater mer enn ett argument, atskilt med et mellomrom (ligner på advarsel() og melding()).
  • Lagt til "--skip-delprosjekter"-alternativet for å selektivt hoppe over installasjon av delprosjekter.

Separat kan vi merke oss Boson-prosjektet, som tar sikte på å lage en bærbar og enkel implementering av Meson-monteringsskriptspråket, skrevet i C i stedet for Python. Prosjektet er fortsatt i det innledende utviklingsstadiet og er ennå ikke klart for full montering av arbeidsprosjekter. Koden er lisensiert under GPLv3 (den originale Python Meson er lisensiert under Apache 2.0-lisensen).

Kilde: opennet.ru

Legg til en kommentar