Meson is een softwaretool om de constructie van software te automatiseren. Het is gratis en open source geschreven in Python.
De release van de nieuwe versie van het Meson 1.0.0 build-systeem is aangekondigd in een publicatie . Deze versie bevat nieuwe functies en biedt onder andere meer stabiliteit voor het compileren van Rust-projecten.
Voor degenen die niet bekend zijn met Meson: het is goed om te weten dat dit build-systeem wordt gebruikt om bekende projecten zoals X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK te compileren.
Het belangrijkste ontwikkelingsdoel van Meson is om een ​​snel compilatieproces te bieden in combinatie met gemak en gebruiksgemak. In plaats van te doen, gebruikt de build standaard de Ninja Toolkit, maar andere backends zoals xcode en VisualStudio kunnen ook worden gebruikt.
Het systeem heeft een ingebouwde platformonafhankelijke afhankelijkheidsbeheerder waarmee je Meson kunt gebruiken om pakketten voor distributies te maken. De compilatieregels zijn geschreven in een vereenvoudigde, domeinspecifieke taal, waardoor ze gemakkelijk leesbaar en begrijpelijk zijn voor de gebruiker (volgens de visie van de auteurs zouden ontwikkelaars zo min mogelijk tijd moeten besteden aan het schrijven van regels).
Cross-compilatie wordt ondersteund , evenals compilatie op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows met behulp van GCC, Clang, Visual Studio en andere compilers.
Het is mogelijk om projecten te bouwen in verschillende programmeertalen , waaronder C, C++, Fortran, Java en Rust. Een incrementele compilatiemodus wordt ondersteund, waarbij alleen de componenten die direct verband houden met wijzigingen sinds de laatste compilatie opnieuw worden gecompileerd.
Meson kan worden gebruikt om herhaalbare builds te genereren, waarbij het uitvoeren van de build in verschillende omgevingen resulteert in volledig identieke uitvoerbare bestanden.
Belangrijkste nieuwigheden van Meson 1.0
In deze nieuwe release van Meson 1.0 wordt dat benadrukt De module voor bouwprojecten in de taal Rust is stabiel verklaard. Deze module wordt gebruikt in het Mesa-project om componenten te bouwen die in Rust zijn geschreven.
Ondersteund door de meeste compilercontrolefuncties, implementeert de prefix-optie de mogelijkheid om andere arrays dan strings te verwerken.
Een andere opvallende verandering in deze release is de introductie van de nieuwe operatoren "in" en "not in" om te bepalen of een substring in een string voorkomt, vergelijkbaar met de eerder beschikbare controle op het voorkomen van een element in een array of dictionary.
Daarnaast zien we ook dat de optie " warning-level=everything" is toegevoegd om de uitvoer van alle beschikbare compilerwaarschuwingen te activeren (in clang en MSVC wordt -Weverything en /Wall gebruikt, en in GCC worden aparte waarschuwingen weergegeven, die ongeveer overeenkomen met de -Weverything-modus van clang).
Het is ook belangrijk om te vermelden dat er een nieuw argument, "--workdir", is toegevoegd waarmee je de werkmap kunt overschrijven . Je kunt bijvoorbeeld de huidige map gebruiken in plaats van de werkmap.
De methode rust.bindgen implementeert de mogelijkheid om het argument "afhankelijkheden" te verwerken om paden naar afhankelijkheden door te geven die door de compiler moeten worden verwerkt en de functie java.generate_native_headers is verouderd en hernoemd naar java.native_headers om overeen te komen met Meson's algemene naamgevingsstijl voor functies.
Verder wordt ook vermeld dat bij cross-compilatie de ontwikkelomgeving nu alle omgevingsvariabelen voor de hostmachine instelt. Ook QEMU_LD_PREFIX en de sys_root-waarde van het cross-compilatiebestand worden nu ingesteld, indien deze eigenschap is gedefinieerd. Dit betekent dat cross-gecompileerde uitvoerbare bestanden vaak transparant kunnen draaien op de compilatiemachine, bijvoorbeeld bij cross-compilatie van x86_64 Linux naar aarch64 Linux.
Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.
Hoe Meson op Linux te installeren?
Voor degenen die geïnteresseerd zijn om dit build-systeem op hun systeem te kunnen installeren, kunnen ze dit doen door de onderstaande instructies te volgen.
Ze moeten weten dat Meson beschikbaar is op PyPi, dus het kan worden geïnstalleerd met de opdracht:
pip3 install meson
Houd er rekening mee dat u moet weten dat de exacte opdracht die u moet typen om pip te installeren, kan variëren tussen systemen, dus het wordt aanbevolen dat u de Python 3-versie van pip gebruikt.