Rilascio della versione del sistema di build CMake 3.16

Presentato rilascio del generatore di script di build open-source multipiattaforma CMake 3.16, che funge da alternativa ad Autotools e viene utilizzato in progetti come KDE, LLVM/Clang, MySQL, MariaDB, ReactOS e Blender. Il codice di CMake è scritto in C++ e distribuito con licenza BSD.

CMake è noto per fornire un semplice linguaggio di scripting, estensibilità delle funzionalità tramite moduli, un numero minimo di dipendenze (senza legami con M4, Perl o Python), supporto per il caching, strumenti per la cross-compilazione, generazione di file di build per una vasta gamma di sistemi di build e compilatori, utility ctest e cpack per definire script di test e di packaging, e l'utility cmake-gui per la configurazione interattiva delle impostazioni di build.

Principali miglioramenti:

  • Aggiunta la supporto per i linguaggi Objective C («OBJC») e Objective
    C++ («OBJCXX»), che possono essere attivati tramite i comandi project() e enable_language(), dopodiché il codice nei file «.m» e «.mm» verrà compilato come codice Objective C e Objective C++, anziché come codice C++, come avveniva in precedenza;
  • Aggiunta la supporto per il compilatore Clang sulla piattaforma Solaris;
  • Aggiunti nuovi parametri della riga di comando: «cmake -E true|false» per emettere codici di ritorno 0 e 1; «cmake —trace-redirect=» per reindirizzare le informazioni di tracciamento in un file, invece di
    «stderr»; il comando «cmake —loglevel» è stato rinominato in «—log-level» per uniformarsi alla nomenclatura degli altri comandi;
  • Aggiunto il comando «target_precompile_headers()» per elencare i file di intestazione utilizzati nella precompilazione (riduce il tempo di compilazione);
  • Aggiunta la proprietà «UNITY_BUILD», che attiva la modalità di elaborazione batch dei file sorgente nei generatori per accelerare la compilazione;
  • Aggiunti i comandi «find_file()», «find_library()», «find_path()»,
    «find_package()» e «find_program()» per cercare file, librerie, percorsi, pacchetti e file eseguibili in base alle variabili che definiscono i percorsi di ricerca delle diverse categorie di file.
    Per la gestione dei percorsi base per la ricerca si usano le variabili «CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH», «CMAKE_FIND_USE_CMAKE_PATH», «CMAKE_FIND_USE_CMAKE_SYSTEM_PATH», «CMAKE_FIND_USE_PACKAGE_ROOT_PATH», «CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH» e «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • È stata aggiunta alla funzione «file()» la modalità «file(GET_RUNTIME_DEPENDENCIES)», che consente di estrarre ricorsivamente l'elenco delle librerie coinvolte nel collegamento dinamico di un eseguibile o di una libreria. Questa modalità sostituisce la funzione GetPrerequisites(), ora deprecata;
  • Nella funzione «ctest(1)» è stata implementata la possibilità di serializzare i test in base alle risorse richieste per ciascun test;
  • È stata deprecata la variabile «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», da utilizzare invece «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
  • Migliorato il supporto per la piattaforma AIX. Utilizzando la proprietà "ENABLE_EXPORTS", oltre al file eseguibile, ora viene generato un file di importazione per il linker, salvato con l'estensione ".imp". Nei plugin creati tramite la chiamata "add_library()" con l'opzione "MODULE", questo file può essere utilizzato per il linking tramite il comando "target_link_libraries()". Il linking runtime in AIX è disabilitato per impostazione predefinita, poiché CMake fornisce ora tutte le informazioni necessarie sui simboli per il linking durante il caricamento. Per applicare il linking runtime a librerie dinamiche o moduli caricati, è necessario specificare esplicitamente le opzioni "-Wl,-G" nell'elenco dei flag di avvio del linker, definiti dalle variabili "CMAKE_SHARED_LINKER_FLAGS" e "CMAKE_MODULE_LINKER_FLAGS".

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