Uscita del sistema di build Meson 1.7.0

È stato pubblicato il rilascio del sistema di build Meson 1.7.0, utilizzato per costruire progetti come X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. Il codice di Meson è scritto in Python ed è rilasciato con licenza Apache 2.0.

L'obiettivo principale dello sviluppo di Meson è garantire un'elevata velocità del processo di build insieme alla facilità d'uso e alla semplicità. Per impostazione predefinita, il sistema utilizza l'utility Ninja invece di make, ma sono supportati anche altri backend come Xcode e Visual Studio. Il sistema include un gestore delle dipendenze multipiattaforma, che consente di utilizzare Meson per la creazione di pacchetti per le distribuzioni. Le regole di build vengono definite in un linguaggio semplificato, orientato agli oggetti, che presenta una buona leggibilità e risulta chiaro all'utente (secondo il design degli autori, lo sviluppatore dovrebbe dedicare il minimo tempo possibile alla scrittura delle regole).

Support for cross-compilation and building on Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS, and Windows using GCC, Clang, Visual Studio, and other compilers. Projects can be built in various programming languages, including C, C++, Fortran, Java, and Rust. An incremental build mode is supported, where only the components directly related to the changes made since the last build are rebuilt. Meson can be used to create reproducible builds, ensuring that running the build in different environments generates completely identical executables.

Novità principali di Meson 1.7:

  • È stata aggiunta la struttura «dependency('atomic')» per verificare la presenza della libreria atomic con operazioni atomiche per C++.
  • È stato aggiunto un nuovo linguaggio di programmazione «Linear Asm» (dialetto TI asm, supportato dal compilatore TI C6000).
  • È stato aggiunto il supporto per la revisione del linguaggio Rust 2024 (rust_std=2024), che sarà fissato nel rilascio del compilatore Rust 1.85.0.
  • È stato aggiunto il supporto per il compilatore TASKING VX-Toolset, utilizzato per la famiglia di CPU Tricore.
  • È stata aggiunta la possibilità di eseguire il linting con clippy per i progetti in Rust.
  • Nella configurazione delle dipendenze per Cargo è stata garantita l'identificazione dell'intero albero delle dipendenze e di tutte le funzionalità disponibili. Questa operazione viene eseguita prima della generazione dell'AST (albero di sintassi astratta) per il sotto-progetto, evitando problemi di ignorare le funzionalità abilitate per il progetto principale tramite il parametro «default_options».
  • Nel modulo external_project sono state impostate le variabili di ambiente PATH e LD_LIBRARY_PATH per garantire un corretto avvio dei programmi.
  • Nel comando «format» è stato aggiunto il supporto per l'argomento «stdin» per leggere i dati dall'input standard, anziché da un file.
  • L'esecuzione di «meson test» ora non provoca più di default l'inizio di una build completa (non richiama «ninja all»), e «ninja all» non esegue la ricompilazione di tutti i test.
  • Nel comando vcs_tag() è stato aggiunto il supporto per gli argomenti «install», «install_dir», «install_tag» e «install_mode» per l'installazione del file generato.
  • È stata aggiunta la variabile di ambiente MESON_NUM_PROCESSES, che riflette il numero di processi figlio avviati per parallelizzare la build. Questa variabile può essere utilizzata, ad esempio, in meson test, nel modulo external_project e nei gestori Ninja che eseguono clang-tidy, clang-format e clippy.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster