CMake
CMake je multiplatformní svobodný software pro automatizaci překladu programu v různých operač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 program make na Unixových strojích, Xcode firmy Apple, nebo Microsoft Visual Studio na systému Windows.
Vývojář | Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf |
---|---|
První vydání | 2000 |
Aktuální verze | 3.22.2 (25. ledna 2022) |
Operační systém | multiplatformní |
Platforma | multiplatformní software |
Vyvíjeno v | C++ |
Typ softwaru | vývoj software |
Licence | BSD licence |
Web | www.cmake.org |
Některá data mohou pocházet z datové položky. |
Historie
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.
Vlastnosti
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 pro Microsoft Visual Studio, Eclipse, Code::Blocks, Cygwin, MinGW, nebo také soubor Makefile pro Unixový program make a mnoho dalších.
Použití
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".
Reference
- Kulhan, J. CMake:Ulehčete si život, 2006, URL: http://programujte.com/clanek/2009032800-cmake-tutorial