Meson bouwsysteem release 1.7.0

De release van het Meson 1.7.0-buildsysteem is gepubliceerd, waarmee projecten als X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK worden gebouwd. De code van Meson is geschreven in Python en valt onder de Apache 2.0-licentie.

Het belangrijkste doel van de ontwikkeling van Meson is het bieden van een hoge snelheid van het assemblageproces, gecombineerd met gemak en gebruiksgemak. In plaats van het make-hulpprogramma gebruikt de standaardbuild de Ninja-toolkit, maar andere backends zoals Xcode en Visual Studio kunnen ook worden gebruikt. Het systeem heeft een ingebouwde afhankelijkheidshandler voor meerdere platforms waarmee u Meson kunt gebruiken om pakketten voor distributies te bouwen. De montageregels zijn gespecificeerd in een vereenvoudigde domeinspecifieke taal, zijn zeer leesbaar en begrijpelijk voor de gebruiker (zoals bedoeld door de auteurs, moet de ontwikkelaar een minimum aan tijd besteden aan het schrijven van regels).

Cross-compilatie en assembly worden ondersteund. LinuxIllumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Met behulp van GCC, Clang, Visual Studio en andere compilers. Projecten kunnen worden gebouwd in verschillende programmeertalen, waaronder C, C++, Fortran, Java en Rust. De incrementele bouwmodus wordt ondersteund, waarbij alleen componenten opnieuw worden gebouwd die direct verband houden met wijzigingen sinds de vorige build. Meson kan worden gebruikt om herhaalbare builds te maken, waarbij het uitvoeren van de build in verschillende omgevingen resulteert in het genereren van volledig identieke uitvoerbare bestanden.

Belangrijkste innovaties van Meson 1.7:

  • "dependency('atomic')"-constructie toegevoegd om te controleren op de aanwezigheid van de atomaire bibliotheek met atomaire bewerkingen voor C++.
  • Een nieuwe programmeertaal "Linear Asm" toegevoegd (TI asm-dialect, ondersteund door de TI C6000-compiler).
  • Ondersteuning toegevoegd voor de Rust 2024-taaleditie (rust_std=2024), die zal worden opgelost in de release van de Rust 1.85.0-compiler.
  • Ondersteuning toegevoegd voor de TASKING VX-Toolset-compiler die wordt gebruikt voor de Tricore CPU-familie.
  • De mogelijkheid toegevoegd om het clippy lint-programma uit te voeren voor Rust-projecten.
  • Wanneer u afhankelijkheden voor Cargo configureert, zorgt u ervoor dat de gehele afhankelijkheidsboom en alle beschikbare mogelijkheden worden gedefinieerd. Deze bewerking wordt uitgevoerd in de fase vóór het genereren van de AST (abstracte syntaxisboom) voor het subproject, waardoor het probleem wordt geëlimineerd dat het subproject de opties negeert die voor het hoofdproject zijn ingeschakeld via de parameter “default_options”.
  • De module external_project biedt instelling van de omgevingsvariabelen PATH en LD_LIBRARY_PATH voor het correct starten van programma's.
  • Ondersteuning toegevoegd voor het "stdin"-argument aan het "format"-commando om gegevens uit standaardinvoer te lezen in plaats van uit een bestand.
  • Het uitvoeren van "meson test" activeert standaard niet een volledige build (triggert niet "ninja all"), en "ninja all" herbouwt niet alle tests.
  • De opdracht vcs_tag() ondersteunt nu de argumenten "install", "install_dir", "install_tag" en "install_mode" om het gegenereerde bestand te installeren.
  • Omgevingsvariabele MESON_NUM_PROCESSES toegevoegd om het aantal onderliggende processen weer te geven dat wordt uitgevoerd om de build te parallelliseren. De variabele kan bijvoorbeeld worden gebruikt in meson-test, de module external_project en in Ninja-handlers die clang-tidy, clang-format en clippy uitvoeren.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster