CMake è un ambiente cross-platform frutto di un progetto open source per lo sviluppo di applicazioni. È stato infatti pensato per aiutare i programmatori durante le fasi di creazione, test e distribuzione di pacchetti software. Consente in particolare di gestire e controllare la compilazione degli applicativi e dei file ad essi correlati mediante strumenti scelti in modo indipendente.
CMake propone funzionalità sofisticate e flessibili per gestire il codice prodotto al fine di coordinare con criteri ottimali i processi di creazione dei programmi, lasciando al contempo la libertà di ricorrere ai consueti tool di sviluppo. Questa utilità rende disponibili comandi per interagire con file include, eseguibili e librerie, potendo anche eseguire programmi esterni. È inoltre predisposta per estendere le sue funzionalità e meglio adattarsi alle diverse esigenze operative.