Meson er et softwareværktøj til at automatisere konstruktionen af ​​software. Det er gratis og open source skrevet i Python.
Udgivelsen af ​​den nye version af Meson 1.4-byggesystemet blev for nylig annonceret . Denne version leveres med forbedret understøttelse af visse funktioner i FS-modulet, samt kompatibilitetsforbedringer, nye funktioner og mere.
For dem der ikke er bekendt med Meson, er det et byggesystem, der bruges af prominente projekter som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME og GTK. Dets primære mål er at levere en hurtig og brugervenlig byggeproces. Det bruger Ninja-værktøjssættet som standard, men er også kompatibelt med andre backends som Xcode og Visual Studio.
Dette system har en integreret afhængighedshåndtering på tværs af platforme , der forenkler oprettelsen af ​​pakker til distributioner. Kompileringsregler defineres i et specifikt, læsbart sprog, hvilket minimerer den tid, det tager at skrive dem.
Meson understøtter byggeprojekter på flere sprog, såsom C, C++, Fortran, Java og Rust, og tilbyder en trinvis byggetilstand, der kun genopbygger komponenter, der er påvirket af ændringer siden sidste build. Derudover kan Meson generere gentagelige builds, hvilket sikrer, at kørsel af buildet i forskellige miljøer producerer fuldstændig identiske eksekverbare filer.
Vigtigste nyheder i Meson 1.4
Denne nye version af Meson 1.4 fremhæver den tilføjede understøttelse af FS-modulet, som nu understøtter build_tgt- og custom_tgt-kompileringsmålobjekter, samt et kompileringsmålindeks (custom_idx) i funktionerne fs.name, fs.parent, fs.replace_suffix og fs.stem.
En anden bemærkelsesværdig ændring i denne nye version er, at Meson nu kan læse projektversionen fra CMake-baserede delprojekter. Dette sikrer, at versionsbegrænsninger verificeres korrekt, når der tilgås et CMake-delprojekt.
Derudover er argumentet `preserve_paths` nu blevet tilføjet til funktionerne `compile_ui`, `compile_moc` og preprocessing i modulerne `qt4`, `qt5` og `qt6` for at vælge muligheden for at opbygge mappestrukturen for de filer, der skrives.
Det skal også bemærkes, at Clang-understøttelse blev tilføjet til stldebug, når debugstl er aktiveret, unset()-metoden blev introduceret til env-objektet, og full_path()-metoden blev tilføjet til File-objektet for at få den fulde sti til filen.
Understøttelse af numpy-config-værktøjet og pkg-config er blevet tilføjet som nye brugerdefinerede afhængigheder. Dette er tilgængeligt fra og med NumPy 2.0.0. Understøttelse af numpy-config vil fungere automatisk, når NumPy er installeret. Pkg-config-filen er dog placeret i Python-webstedspakkerne, hvilket betyder, at den ikke kan bruges med det samme uden at konfigurere PKG_CONFIG_PATH.
Andre bemærkelsesværdige ændringer i denne nye version inkluderer:
- Evne til at kontrollere assertion checks (GLIBCXX_ASSERTIONS) i C++ stdlib via ndebug-konfiguration.
- Tilføjet preserve_pathsun søgeordsargument til qt-modulfunktioner
- Det er nu muligt at angive afhængige mål med afhænger: for compiler.preprocess(). Disse mål skal konstrueres, før forbehandlingen begynder.
- Bindgen-bindingsgeneratoren understøtter nu Meson-heuristik til bestemmelse af C++-header-filer.
- Tilføjet muligheden for at tilsidesætte sprogindstillinger for bindgen.
- Tests mislykkes nu som standard efter at have stødt på fejl, når de kører desinfektionsmidler som MemorySanitizer.
- Tilføjet understøttelse af Texas Instruments C/C++ compiler til C6000 CPU-familien.
Endelig, hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.
Hvordan installeres Meson på Linux?
For dem, der er interesseret i at kunne installere dette byggesystem på deres system, kan de gøre det ved at følge instruktionerne, vi deler nedenfor.
De burde vide, at Meson er tilgængelig på PyPi, så det kan installeres med kommandoen:
pip3 install meson
Som en note skal du vide, at den nøjagtige kommando til at skrive for at installere pip kan variere mellem systemer, så det anbefales, at du bruger Python 3-versionen af ​​pip.