Meson build system release 1.0

Byggsystemet Meson 1.0.0 har släppts, som används för att bygga projekt som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME och GTK. Mesons kod är skriven i Python och är licensierad under Apache 2.0-licensen.

Huvudmålet med Mesons utveckling är att ge hög hastighet i monteringsprocessen kombinerat med bekvämlighet och användarvänlighet. Istället för make-verktyget används Ninja-verktygslådan som standard när man bygger, men andra backends som xcode och VisualStudio kan också användas. Systemet har en inbyggd beroendehanterare för flera plattformar som låter dig använda Meson för att bygga paket för distributioner. Sammansättningsreglerna är specificerade på ett förenklat domänspecifikt språk, är mycket läsbara och förståeliga för användaren (som författarna avsett bör utvecklaren lägga minst tid på att skriva regler).

Stöder korskompilering och byggnad på Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS och Windows med GCC, Clang, Visual Studio och andra kompilatorer. Det är möjligt att bygga projekt i olika programmeringsspråk, inklusive C, C++, Fortran, Java och Rust. Inkrementellt byggläge stöds, där endast komponenter som är direkt relaterade till ändringar som gjorts sedan den senaste byggnaden byggs om. Meson kan användas för att generera repeterbara builds, där körning av builden i olika miljöer resulterar i generering av helt identiska körbara filer.

De viktigaste innovationerna i Meson 1.0:

  • En modul för byggprojekt på språket Rust har förklarats stabil. Denna modul används i Mesa-projektet för att bygga komponenter skrivna i Rust.
  • Prefixalternativet, som stöds i de flesta kompilatorkontrollfunktioner, ger möjlighet att hantera arrayer förutom strängar. Till exempel kan du nu ange: cc.check_header('GL/wglew.h', prefix: ['#include ', '#inkludera '])
  • Lade till nytt argument "--workdir" för att tillåta åsidosättande av arbetskatalogen. Till exempel, för att använda den aktuella katalogen istället för arbetskatalogen, kan du köra: meson devenv -C builddir --workdir .
  • Nya operatorer "in" och "inte i" har föreslagits för att bestämma förekomsten av en delsträng i en sträng, liknande den tidigare tillgängliga kontrollen för förekomsten av ett element i en array eller ordbok. Till exempel: fs = import('fs') if 'något' i fs.read('somefile') # True endif
  • Lade till alternativet "warning-level=everything", som slår på utdata från alla tillgängliga kompilatorvarningar (i clang och MSVC använder den -Weverything och /Wall, och i GCC ingår varningar separat, ungefär motsvarande -Weverything läge i klang).
  • Rust.bindgen-metoden implementerar förmågan att hantera argumentet "beroenden" för att skicka sökvägar till beroenden som bör bearbetas av kompilatorn.
  • Funktionen java.generate_native_headers har föråldrats och bytt namn till java.native_headers för att överensstämma med Mesons vanliga namngivningsstil för funktioner.

Källa: opennet.ru

Lägg en kommentar