Meson build system release 1.0

Udgivelsen af ​​Meson 1.0.0 byggesystemet er blevet offentliggjort, som bruges til at bygge projekter som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME og GTK. Meson-koden er skrevet i Python og er licenseret under Apache 2.0-licensen.

Det vigtigste udviklingsmål for Meson er at levere en højhastigheds monteringsproces kombineret med bekvemmelighed og brugervenlighed. I stedet for at lave bruger buildet Ninja-værktøjssættet som standard, men andre backends såsom xcode og VisualStudio kan også bruges. Systemet har en indbygget multi-platform afhængighedshandler, der giver dig mulighed for at bruge Meson til at bygge pakker til distributioner. Samlingsregler er sat i et forenklet domænespecifikt sprog, de er letlæselige og forståelige for brugeren (ifølge forfatternes idé skal udvikleren bruge minimum tid på at skrive regler).

Krydskompilering og bygning på Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS og Windows ved hjælp af GCC, Clang, Visual Studio og andre compilere understøttes. Det er muligt at bygge projekter i forskellige programmeringssprog, herunder C, C++, Fortran, Java og Rust. En inkrementel build-tilstand er understøttet, hvor kun komponenter, der er direkte relateret til ændringer foretaget siden den sidste build, genopbygges. Meson kan bruges til at generere gentagelige builds, hvor kørsel af build i forskellige miljøer resulterer i fuldstændig identiske eksekverbare filer.

Vigtigste innovationer i Meson 1.0:

  • Modulet til byggeprojekter i Rust-sproget er erklæret stabilt. Dette modul bruges i Mesa-projektet til at bygge komponenter skrevet i Rust.
  • Understøttet af de fleste compilerkontrolfunktioner implementerer præfiksindstillingen muligheden for at håndtere andre arrays end strenge. For eksempel kan du nu angive: cc.check_header('GL/wglew.h', præfiks: ['#include ', '#inkluder '])
  • Et nyt "--workdir"-argument er blevet tilføjet for at tillade dig at tilsidesætte arbejdsmappen. For at bruge den aktuelle mappe i stedet for arbejdsmappen, kan du for eksempel køre: meson devenv -C builddir --workdir .
  • Nye operatorer "in" og "not in" foreslås til at bestemme forekomsten af ​​en understreng i en streng, svarende til den tidligere tilgængelige kontrol for forekomsten af ​​et element i en matrix eller ordbog. For eksempel: fs = import('fs') if 'noget' i fs.read('somefile') # True endif
  • Tilføjet "warning-level=everything" mulighed for at aktivere output af alle tilgængelige compiler advarsler (i clang og MSVC bruger -Weverything og /Wall, og i GCC er separate advarsler inkluderet, hvilket nogenlunde svarer til -Weverything tilstanden i clang).
  • Rust.bindgen-metoden implementerer evnen til at behandle "afhængigheder"-argumentet for at videregive stier til afhængigheder, der skal behandles af compileren.
  • Funktionen java.generate_native_headers er blevet forældet og omdøbt til java.native_headers for at matche Mesons generelle funktions navngivningsstil.

Kilde: opennet.ru

Tilføj en kommentar