Meson bygge systemutgivelse 1.0

Utgivelsen av Meson 1.0.0 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 1.0:

  • En modul for byggeprosjekter på Rust-språket er erklært stabil. Denne modulen brukes i Mesa-prosjektet for å bygge komponenter skrevet i Rust.
  • Prefiksalternativet, støttet i de fleste kompilatorkontrollfunksjoner, gir muligheten til å håndtere arrays i tillegg til strenger. For eksempel kan du nå spesifisere: cc.check_header('GL/wglew.h', prefiks: ['#include ', '#inkluder '])
  • Lagt til nytt argument "--workdir" for å tillate overstyring av arbeidskatalogen. For å bruke gjeldende katalog i stedet for arbeidskatalogen, kan du for eksempel kjøre: meson devenv -C builddir --workdir .
  • Nye operatorer "in" og "not in" har blitt foreslått for å bestemme forekomsten av en delstreng i en streng, lik den tidligere tilgjengelige sjekken for forekomsten av et element i en matrise eller ordbok. For eksempel: fs = import('fs') if 'noe' i fs.read('somefile') # True endif
  • Lagt til alternativet "warning-level=everything", som slår på utgangen av alle tilgjengelige kompilatoradvarsler (i clang og MSVC bruker den -Weverything og /Wall, og i GCC er advarsler inkludert separat, omtrent tilsvarende -Weverything modus i klang).
  • Rust.bindgen-metoden implementerer muligheten til å håndtere "avhengigheter"-argumentet for å sende stier til avhengigheter som skal behandles av kompilatoren.
  • Funksjonen java.generate_native_headers har blitt avviklet og omdøpt til java.native_headers for å samsvare med Mesons vanlige navnestil for funksjoner.

Kilde: opennet.ru

Legg til en kommentar