Rilascio del sistema di build Meson 1.12.0

È stato pubblicato il rilascio del sistema di build Meson 1.12.0, utilizzato per la compilazione di progetti come X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. Il codice di Meson è scritto in Python e distribuito 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).

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.12:

  • Aggiunta il supporto per il file CACHEDIR.TAG, posizionato nella directory di build per escludere i file temporanei generati dalla build dai backup.
  • Aggiunto il target di build clippy-json, che esegue il linter Clippy e genera per Rust-analyzer le informazioni su avvisi e errori in formato JSON.
  • Aggiunti l'oggetto e la funzione default(), destinati a ripristinare i valori predefiniti degli argomenti denominati.
  • Nel metodo generator.process() è stato aggiunto l'argomento 'depends' per il collegamento diretto dei file generati con altri target di build.
  • Nel oggetto 'include_directories' è stato aggiunto il metodo to_list() per restituire un elenco di percorsi assoluti delle directory incluse.
  • Aggiunte funzioni per convertire le stringhe in numeri interi e viceversa: str.to_int() e int.to_string().
  • Nel comando 'meson format' è stata aggiunta l'opzione '--subprojects', utilizzata insieme a '--recursive' per includere i sotto-progetti durante l'analisi ricorsiva.
  • Aggiunto il supporto per le piattaforme OpenHarmony e HarmonyOS (OHOS), trattate come Android.
  • Nella definizione dei propri target di build e test, è consentito specificare programmi esterni negli argomenti denominati 'input' e 'depends'.
  • Aggiunta la possibilità di costruire separatamente i sotto-progetti per il computer di build e la piattaforma target specificando nell'subproject() e meson.override_find_program() l'argomento denominato 'native'.
  • Nel comando 'meson test' è stata aggiunta l'opzione '--exclude' per saltare test specifici.
  • Interrotta la supporto per Python 3.7, 3.8 e 3.9.

Fonte: opennet.ru

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