È stato presentato il rilascio del generatore di script di build open-source e multipiattaforma CMake 3.22, 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 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:
- Nello strumento per la configurazione delle opzioni del compilatore (Compile Features) è stata introdotta la possibilità di abilitare e disabilitare le estensioni del compilatore senza specificare il livello di supporto standard, e sono stati esclusi l'inserimento di flag non necessari con il livello standard della lingua se le impostazioni selezionate rientrano nei parametri predefiniti del compilatore.
- Nella funzione cmake_host_system_information() è stata aggiunta la possibilità di richiedere l'identificativo del sistema operativo, memorizzato nel file /etc/os-release.
- Sono state aggiunte le variabili d'ambiente CMAKE_BUILD_TYPE e CMAKE_CONFIGURATION_TYPES, attraverso le quali è possibile impostare il valore predefinito delle variabili CMake omonime.
- È stata aggiunta la variabile «CMAKE_REQUIRE_FIND_PACKAGE_», che rende la chiamata della funzione find_package() per rilevare il pacchetto specificato obbligatoria.
- È stata aggiunta la variabile d'ambiente «CMAKE_INSTALL_MODE» per stabilire i symlink invece della copia dei file durante la chiamata di «install()».
- È stata introdotta la flag «CMAKE__LINK_WHAT_YOU_USE_FLAG» e la variabile «CMAKE_LINK_WHAT_YOU_USE_CHECK» per impostare e verificare i flag del linker.
- Nel modulo FetchContent è stata garantita la trasmissione delle variabili impostate «CMAKE_TLS_VERIFY», «CMAKE_TLS_CAINFO», «CMAKE_NETRC» e «CMAKE_NETRC_FILE» negli script di build dei progetti esterni (in precedenza, questi parametri venivano ignorati).
- Nel macro «cmake_dependent_option()» fornito dal modulo «CMakeDependentOption» è stata aggiunta la piena supporto per la sintassi delle espressioni condizionali.
- I moduli «FindJasper» e «FindMatlab» ora forniscono obiettivi importabili.
- Nella proprietà «VS_SETTINGS» è stato implementato il supporto per tutti i tipi di file di codice sorgente.
- È stato dichiarato obsoleto e sarà rimosso in uno dei prossimi rilasci il generatore «Visual Studio 10 2010».
Fonte: opennet.ru
