CMake software | |
---|---|
![]() | |
![]() | |
Genere | Automazione dello sviluppo |
Sviluppatore | Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf |
Data prima versione | 2000 |
Ultima versione | 3.29.4 (3 giugno 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | C++ C |
Toolkit | Qt |
Licenza | BSD 3-clausole (licenza libera) |
Sito web | cmake.org/ |
CMake è un software libero multipiattaforma per l'automazione dello sviluppo il cui nome è un'abbreviazione di cross platform make. Questo software nasce per rimpiazzare Automake nella generazione dei Makefile, cercando di essere più semplice da usare. Infatti, nella maggior parte dei progetti, non esiste un Makefile incluso nei sorgenti, dato che questo non è portabile.
Per la compilazione del programma è necessario verificare che siano incluse tutte le librerie e scovare i loro percorsi all'interno del file system. Proprio per questo motivo, è impossibile avere un Makefile già scritto.
A questo punto, il tool Automake, doveva eseguire una precisa ricerca di tali librerie e infine, se non si sono riscontrati errori, la definitiva creazione del Makefile per la successiva compilazione. Questo avveniva con:
./configure make make install
La creazione di un configure non è proprio facilissima. Proprio per questo interviene il nuovo sistema di generazione di Makefile: CMake.
CMake è un tool molto modulare che, con poche e concise istruzioni, è in grado di generare Makefile a puntino. CMake dispone di una particolare sintassi comprensiva di moltissime macro e il loro utilizzo è possibile mediante un apposito file chiamato CMakeLists.txt.
Un tipico e semplicissimo esempio di CMakeLists.txt è il seguente:
cmake_minimum_required(VERSION 3.27)
project(matematica)
add_executable(matematica
src/main.cpp
)
target_link_libraries(matematica
Boost::boost
)
Per la generazione del Makefile e la successiva compilazione del progetto, è necessario eseguire i seguenti comandi:
cmake -B build .
cmake --build build
Il primo comando configura e genera gli script per effettuare la build del progetto, all'interno della directory build, il secondo fa partire la compilazione.
Mediante CMake si crea effettivamente un Makefile astratto, mentre la sua creazione concreta avviene nel particolare sistema operativo utilizzato.