È stato rilasciato CMake 3.22, un generatore di script di build open-source e multipiattaforma che funge da alternativa agli Autotools, 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 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.
Miglioramenti principali:
- Nelle impostazioni per la configurazione delle funzionalità del compilatore (Compile Features) è stata introdotta la possibilità di attivare e disattivare le estensioni del compilatore senza specificare il livello di supporto standard, escludendo l'impostazione di flag non necessari con il livello standard del linguaggio, se le impostazioni scelte 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 un valore predefinito per le variabili CMake con lo stesso nome.
- È stata aggiunta la variabile «CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>» che trasforma la chiamata alla funzione find_package() per la scoperta del pacchetto specificato in un requisito obbligatorio.
- È stata aggiunta la variabile d'ambiente «CMAKE_INSTALL_MODE» per impostare i collegamenti simbolici anziché copiare i file durante la chiamata «install()».
- È stato aggiunto il 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» nello 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.
- Il generatore «Visual Studio 10 2010» è stato dichiarato obsoleto e sarà rimosso in una delle prossime versioni.
Fonte: opennet.ru
