Rilascio dei sistemi di build CMake 3.21 e Meson 0.59

È stato rilasciato CMake 3.21, un generatore di script di build multipiattaforma open source che funge da alternativa a Autotools e viene utilizzato in progetti come KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. Il codice di CMake è scritto in C++ ed è distribuito sotto licenza BSD.

CMake è noto per fornire un semplice linguaggio di script, metodi per estendere le funzionalità tramite moduli, un numero minimo di dipendenze (nessun legame con M4, Perl o Python), supporto per la caching, strumenti per cross-compilazione, supporto per la generazione di file di build per una vasta gamma di sistemi di build e compilatori, utilità ctest e cpack per la definizione di script di test e pacchetti di build, e l'utilità cmake-gui per la configurazione interattiva delle impostazioni di build.

Principali miglioramenti:

  • È stata aggiunta il supporto completo per HIP (Heterogeneous-Computing Interface for Portability), un dialetto di C++ progettato per semplificare la conversione delle applicazioni CUDA in codice portabile.
  • È stato aggiunto un generatore di script di build per Visual Studio 17 2022, basato sulla versione preliminare di Visual Studio 2022 Preview 1.1.
  • Nei generatori di script di build Makefile e Ninja sono state aggiunte le proprietà C_LINKER_LAUNCHER e CXX_LINKER_LAUNCHER, che consentono di avviare utility ausiliarie che lanciano il linker, come gli analizzatori statici. Il generatore avvierà le utility specificate, passando il nome del linker e i suoi argomenti.
  • Nelle proprietà 'C_STANDARD' e 'OBJC_STANDARD', così come negli strumenti per configurare le opzioni del compilatore (Compile Features), è stato aggiunto il supporto per le specifiche C17 e C23.
  • È stata aggiunta all'utilità cmake l'opzione '--toolchain ' per specificare il percorso verso l'toolchain.
  • È stata garantita l'evidenziazione dei tipi di messaggi emessi nel terminale.
  • È stato aggiunto il supporto per il compilatore Fujitsu.
  • Nella funzione 'foreach()' è stata isolata la variabile del ciclo all'interno del ciclo.

Inoltre, si segnala il rilascio di Meson 0.59, un sistema di build utilizzato per compilare progetti come X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. Il codice di Meson è scritto in Python e viene distribuito sotto licenza Apache 2.0. Supporta la cross-compilazione e la build su Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS e Windows utilizzando GCC, Clang, Visual Studio e altri compilatori. È possibile compilare progetti in vari linguaggi di programmazione, inclusi C, C++, Fortran, Java e Rust. Per impostazione predefinita, durante la build viene utilizzato l'utility Ninja invece di make, ma è possibile utilizzare anche altri backend come xcode e VisualStudio.

Il sistema include un gestore delle dipendenze multipiattaforma che consente di utilizzare Meson per compilare pacchetti per le distribuzioni. Le regole di compilazione sono definite in un linguaggio semplificato orientato agli oggetti, presentano una buona leggibilità e sono comprensibili per l'utente (secondo gli autori, il programmatore dovrebbe spendere il minimo tempo possibile per scrivere le regole). È supportata la modalità di compilazione incrementale, dove vengono ricompilati solo i componenti direttamente collegati alle modifiche apportate dalla precedente compilazione. Meson può essere utilizzato per creare compilazioni ripetibili, in cui l'avvio della compilazione in ambienti diversi porta a generare file eseguibili completamente identici.

Novità principali di Meson 0.59:

  • Aggiunta del supporto per il linguaggio Cython (una versione estesa di Python, mirata a semplificare l'integrazione con il codice C).
  • Introdotte le parole chiave «unescaped_variables» e «unescaped_uninstalled_variables» per definire variabili in pkgconfig senza l'escape degli spazi con il carattere «\».
  • Aggiunto il supporto per wrc (Wine Resource Compiler).
  • Implementata la possibilità di generare progetti per Visual Studio 2012 e Visual Studio 2013.
  • Tutti i comandi relativi al trattamento dei sottoprogetti ora eseguono per impostazione predefinita ogni sottoprogetto in parallelo. Il numero di processi in esecuzione parallelamente è determinato dall'opzione «—num-processes».

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