Rilasciato il sistema di build Meson 1.11.0

È stato rilasciato Meson 1.11.0, un sistema di build utilizzato per progetti come X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. Il codice di Meson è scritto in Python ed è distribuito sotto 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).

Supporta la cross-compilazione e la costruzione su Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS e Windows utilizzando GCC, Clang, Visual Studio e altri compilatori. È possibile costruire progetti in vari linguaggi di programmazione, inclusi C, C++, Fortran, Java, D e Rust. È supportata la modalità di build incrementale, in cui vengono ricostruiti solo i componenti direttamente correlati alle modifiche apportate dalla precedente build. Meson può essere utilizzato per generare build ripetibili, in cui l'esecuzione della build in ambienti diversi genera file eseguibili completamente identici.

Novità principali di Meson 1.11:

  • Quando si invoca il metodo rust.workspace() nello script di Meson, viene eseguita l'analisi del file Cargo.toml principale all'interno del progetto, per attivare correttamente i flag delle feature definiti nel file Cargo.toml condiviso tra tutti gli spazi di lavoro. Inoltre, il metodo rust.workspace() ora restituisce un oggetto da cui è possibile ottenere l'elenco dei flag delle feature e delle dipendenze per i sottomoduli, nonché avviare la compilazione degli obiettivi definiti nei file Cargo.toml.
  • Nel comando «meson dist» sono state aggiunte l'opzione «-j» (—num-processes) e la variabile d'ambiente MESON_NUM_PROCESSES per specificare il numero di processi da eseguire in parallelo durante la compilazione e il test dei pacchetti.
  • Il parametro should_fail, che permette il passaggio del test in caso di errore, è stato dichiarato obsoleto e rinominato in expected_fail. È stato aggiunto il parametro expected_exitcode per impostare un codice di uscita del test che sia diverso da 0.
  • Nel modulo external_project sulla piattaforma Windows è stato utilizzato il comando cygpath per convertire i percorsi di file specifici di Windows in percorsi compatibili con Unix (ad esempio, da C:/path/to/configure a /path/to/configure).
  • Nei comandi install_man e install_headers è stato aggiunto il supporto per l'argomento install_tag, che consente di scegliere i file da installare in base a tag arbitrari, non solo ai tag man e devel.
  • È stato aggiunto il parametro link_early_args, che consente di inserire opzioni (ad esempio, «-u» o «—defsym») nella riga di comando all'avvio del linker, prima della lista di oggetti e librerie.
  • È stata aggiunta la costante «~», sostituita con la home directory nei file di descrizione dell'ambiente (machine files).
  • Nel comando «meson format» la sortazione dei file, elencati tra gli argomenti della funzione files(), è disabilitata per impostazione predefinita. Per attivare la sortazione è necessario utilizzare l'opzione sort_files.
  • È stato annunciato il termine del supporto per le versioni di Python precedenti alla 3.10. Meson 1.11.0 è l'ultima versione con supporto per i rami Python 3.7, 3.8 e 3.9.
  • È stato aggiunto il supporto per le nuove funzionalità del compilatore C/C++ MPLAB XC32, introdotte nella versione 5.0, come l'attivazione automatica delle ottimizzazioni LTO e il supporto per gli standard C2x e CPP23.

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