Qualche giorno fa Rilasciato il generatore di script open source multipiattaforma CMake 3.15 che funge da alternativa ad Autotools ed è utilizzato in progetti come KDE, LLVM / Clang, MySQL, MariaDB, ReactOS e Blender.
CMake è uno strumento di generazione di codice o automazione multipiattaforma. Il nomeè un'abbreviazione di "cross platform make" (make cross platform, oltre l'uso di "make" nel nome, CMake è una suite separata e di livello superiore rispetto al sistema di marca comune di Unix, essendo simile agli autotools.
Informazioni su CMake
CMake si distingue per fornire un semplice linguaggio di scripting, strumenti per estendere la funzionalità tra i moduli, numero minimo di dipendenze (nessun collegamento a M4, Perl o Python), supporto per la memorizzazione nella cache, disponibilità di strumenti per la compilazione incrociata, supporto per la generazione di file assembly per un'ampia gamma di compilatori e sistemi.
Le utilità ctest e cpack per la definizione degli scenari di test e la creazione di pacchetti, con l'utilità cmake-gui per la configurazione interattiva dei parametri di compilazione.
CMake viene utilizzato per controllare il processo di compilazione del software utilizzando file di configurazione semplici e indipendenti dalla piattaforma. Cmake genera makefile nativi e spazi di lavoro che possono essere utilizzati nell'ambiente di sviluppo desiderato.
È paragonabile al sistema di compilazione GNU Unix in quanto il processo è controllato dai file di configurazione, nel caso di CMake chiamato CMakeLists.txt.
A differenza del sistema di compilazione GNU, che è limitato alle piattaforme Unix, CMake supporta la generazione di file per vari sistemi operativi, il che facilita la manutenzione ed elimina la necessità di avere più set di file per ciascuna piattaforma.
Il processo di compilazione viene controllato creando uno o più file CMakeLists.txt in ciascuna directory (incluse le sottodirectory).
Il codice CMake è scritto in C ++ ed è distribuito con licenza BSD.
Principali novità di CMake 3.15
Questa nuova versione evidenziato dall'arrivo del supporto iniziale del generatore per il linguaggio Swift sviluppato da Apple è stato aggiunto al generatore di script di assemblaggio Ninja Toolkit.
Oltre a questo, arriva anche il supporto per l'opzione del compilatore Clang per Windows che è costruito con ABI MSVC, ma utilizza le opzioni della riga di comando in stile GNU.
Gli sviluppatori sottolineano che le variabili CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
vengono aggiunti per selezionare le librerie di runtime utilizzate dai compilatori ABI MSVC
(MSVisual Studio).
Per compilatori come MSVC
in CMAKE__FLAGS
Per impostazione predefinita, l'elenco di flag di controllo di avviso come "/ W3" viene interrotto.
Tra gli altri miglioramenti che vengono evidenziati nell'annuncio del rilascio di questa nuova versione, troviamo i seguenti:
- Aggiunta l'espressione generatrice '
COMPILE_LANG_AND_ID
: »Per definire le opzioni del compilatore per i file di destinazione che utilizzano variabiliCMAKE__COMPILER_ID
yLANGUAGE
per ogni file di codice - Espressioni del generatore
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
aggiunge il supporto per la corrispondenza di un valore a un elenco, elementi separati da virgole - La variabile è stata aggiunta
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, in cui la chiamata a find_package () cercherà prima il file di configurazione del pacchetto, anche se il modulo di ricerca è disponibile - Per le librerie di interfaccia, è stato aggiunto il supporto per l'impostazione delle proprietà
PUBLIC_HEADER y PRIVATE_HEADER
, le cui intestazioni possono essere configurate dal comando install (TARGETS) passando gli argomentiPUBLIC_HEADER
yPRIVATE_HEADER
- La variabile è stata aggiunta
CMAKE_VS_JUST_MY_CODE_DEBUGGING
e la proprietà di destinazioneVS_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 successive. - È stato rielaborato il modulo FindBoost, che ora viene lavorato in modo più completo nelle modalità di configurazione e modulo con la presenza di altri moduli di ricerca
- Il supporto per i tipi NOTICE, VERBOSE, DEBUG e TRACE è stato aggiunto al comando message ()
- Il comando "export (PACCHETTO)" ora non fa nulla finché non viene esplicitamente abilitato tramite la variabile
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Se vuoi saperne di più puoi consultare il seguente collegamento.