| Vývojář | Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf |
|---|---|
| První vydání | 2000 |
| Aktuální verze | 4.2.2 (22. ledna 2026) |
| Operační systém | multiplatformní |
| Platforma | multiplatformní |
| Vyvíjeno v | C++ |
| Typ softwaru | vývoj software |
| Licence | BSD licence |
| Web | www.cmake.org |
| Některá data mohou pocházet zdatové položky. | |
CMake jemultiplatformnísvobodný software pro automatizaci překladuprogramu v různýchoperačních systémech. Používá se pro vytvoření adresářové struktury a přípravu zdrojových souborů pro použití s konkrétními, na operační systém často vázanými,překladači. Například programmake naUnixových strojích,Xcode firmy Apple, neboMicrosoft Visual Studio na systémuWindows.
CMake byl vytvořen v roce 1999 v reakci na poptávku po multiplatformním prostředí pro kompilaci softwaru v projektu Insight Segmentation and Registration Toolkit. Původně byl inspirován programem pcmaker, který byl vytvořen Kenem Martinem a dalšími vývojáři firmy Kitware. CMake vznikl spojením funkcí pcmakeru s dalšími vylepšeními, které byly inspirovány unixovými konfiguračními skripty. První verze byla hotova v roce 2000. V následující letech se rychle rozvíjel díky přispění dalších programátorů, kteří jej využívali ve vlastních vývojářských projektech.
CMake zvládá generovat výstup jak do stejné složky, ve které se nachází zdrojové soubory (in-place build), tak do předem vybraného adresáře (out-of-place build). Schopnost generovat výstup do předem určené složky je klíčová — díky ní zůstanou původní zdrojové soubory vždy nedotčené a proces sestavování tak lze libovolně opakovat. Výstupem mohou být projekty proMicrosoft Visual Studio,Eclipse,Code::Blocks,Cygwin,MinGW, nebo také soubor Makefile pro Unixový programmake a mnoho dalších.
Proces se nastavuje konfiguračním souborem v kořenovém adresáři nebo volitelně také v podsložkách a má název
CMakeLists.txt
V systému Windows je součástí programu grafické uživatelské rozhraní, přes které lze celý proces pohodlně nakonfigurovat. Na všech systémech je především k dispozici příkaz v příkazové řádce
cmake -argumenty
Soubor CMakeLists.txt může vypadat například takto[1]:
IF(UNIX) IF(APPLE) SET(GUI "osx") ELSE(APPLE) SET(GUI "x11") ENDIF(APPLE)ELSE(UNIX) IF(WIN32) SET(GUI "win32") ELSE(WIN32) MESSAGE(FATAL_ERROR "Unknown GUI type.") ENDIF(WIN32)ENDIF(UNIX)ADD_LIBRARY(gui STATIC ${GUI}_gui/main_window.cpp ...)ADD_EXECUTABLE(foo src/main.cpp ...)TARGET_LINK_LIBRARIES(foo gui)Ukázkový kód rozvětví pomocí podmínek IF kompilaci podle operačního systému a dle něj nastaví proměnnou GUI. Ta je použita ve volání ADD_LIBRARY a díky ní se použijí správné soubory pro grafické uživatelské rozhraní. Výstup je nastaven příkazem ADD_EXECUTABLE. V příkladu jím bude spustitelný soubor s názvem "foo".
(česky)
(anglicky)