È stato rilasciato il sistema di build Meson 1.0

È stato pubblicato il rilascio del sistema di build Meson 1.0.0, utilizzato per la costruzione di progetti come X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. Il codice di Meson è scritto in Python e distribuito sotto la licenza Apache 2.0.

L'obiettivo principale dello sviluppo di Meson è garantire un elevato livello di velocità del processo di build insieme a facilità d'uso e semplicità. Invece dell'utilità make, per impostazione predefinita viene utilizzato lo strumento Ninja, ma è possibile anche utilizzare altri backend come xcode e VisualStudio. Il sistema integra un gestore delle dipendenze multipiattaforma, consentendo di utilizzare Meson per la costruzione di pacchetti per le distribuzioni. Le regole di build sono definite in un linguaggio semplificato e specifico del dominio, caratterizzate da una buona leggibilità e comprensibili per l'utente (secondo le intenzioni degli autori, il programmatore dovrebbe spendere il minimo tempo possibile nella 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.0:

  • Annunciato un modulo stabile per la costruzione di progetti in Rust. Questo modulo viene utilizzato nel progetto Mesa per costruire componenti scritti in Rust.
  • Nel parametro prefix, supportato nella maggior parte delle funzioni di verifica del compilatore, è stata implementata la possibilità di gestire array oltre che stringhe. Ad esempio, ora è possibile specificare: cc.check_header(‘GL/wglew.h’, prefix : [‘#include ’, ‘#include ’])
  • Aggiunto un nuovo argomento «—workdir» che consente di sovrascrivere la directory di lavoro. Ad esempio, per utilizzare la directory corrente invece di quella di lavoro, è possibile eseguire: meson devenv -C builddir —workdir .
  • Introdotti i nuovi operatori «in» e «not in» per la verifica della sottostringa all'interno di una stringa, analogamente a quanto già disponibile per controllare se un elemento è presente in un array o in un dizionario. Ad esempio: fs = import(‘fs’) if ‘something’ in fs.read(‘somefile’) # True endif
  • Aggiunta l'opzione «warning-level=everything», che include l'output di tutti gli avvisi del compilatore esistenti (in clang e MSVC si utilizza -Weverything e /Wall, mentre in GCC gli avvisi vengono attivati singolarmente, corrispondendo all'incirca alla modalità -Weverything in clang).
  • Nel metodo rust.bindgen è stata implementata la possibilità di gestire l'argomento «dependencies» per passare i percorsi delle dipendenze che devono essere elaborate dal compilatore.
  • Annunciata deprecata la funzione java.generate_native_headers, rinominata in java.native_headers per conformarsi allo stile di denominazione comune delle funzioni adottato in Meson.

Fonte: opennet.ru

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