rilascio di un generatore di script di build open-source e multipiattaforma , che funge da alternativa ad Autotools e 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 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 :
- È stata aggiunta la supporto iniziale per il linguaggio nel generatore di script di build basato su Ninja , sviluppato da Apple;
- È stato aggiunto il supporto per la variante del compilatore Clang per Windows, che effettua la compilazione con ABI MSVC, ma utilizza opzioni della riga di comando in stile GNU;
- Sono state aggiunte le variabili CMAKE_MSVC_RUNTIME_LIBRARY e MSVC_RUNTIME_LIBRARY per la selezione delle librerie runtime utilizzate dai compilatori basati su ABI MSVC (MS Visual Studio);
- Per i compilatori simili a MSVC, CMAKE__FLAGS ora non include più l'elenco dei flag per il controllo dell'output degli avvisi, come «/W3»;
- È stata aggiunta l'espressione del generatore «COMPILE_LANG_AND_ID:» per determinare le opzioni del compilatore per i file di destinazione che applicano le variabili CMAKE__COMPILER_ID e LANGUAGE per ogni file di codice;
- Nel generatore, C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID e PLATFORM_ID è stata aggiunta la supporto per il matching di un valore con un elenco, i cui elementi sono separati da virgole; - È stata aggiunta la variabile CMAKE_FIND_PACKAGE_PREFER_CONFIG, per cui la chiamata find_package() cercherà prima il file di configurazione del pacchetto, anche se è disponibile un modulo di ricerca;
- Per le librerie interfaccia, è stato aggiunto il supporto per impostare le proprietà PUBLIC_HEADER e PRIVATE_HEADER, permettendo ai file di intestazione specificati di essere installati tramite il comando install(TARGETS) passando gli argomenti PUBLIC_HEADER e PRIVATE_HEADER;
- È stata aggiunta la variabile CMAKE_VS_JUST_MY_CODE_DEBUGGING e la proprietà target VS_JUST_MY_CODE_DEBUGGING per abilitare la modalità «Just My Code» nel debugger di Visual Studio durante la compilazione utilizzando MSVC cl 19.05 e versioni più recenti;
- Il modulo FindBoost è stato ristrutturato, ora funziona in modo più completo nelle modalità Config e Module in presenza di altri moduli di ricerca;
- Nel comando message() è stato aggiunto il supporto per i tipi NOTICE, VERBOSE,
DEBUG e TRACE; - Il comando «export(PACKAGE)» ora non fa nulla fino a quando non viene esplicitamente abilitato tramite la variabile CMAKE_EXPORT_PACKAGE_REGISTRY.
Fonte: opennet.ru
