CMake

CMake
Logo
VývojářAndy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf
První vydání2000
Aktuální verze3.27.1 (25. července 2023)
Operační systémmultiplatformní
Platformamultiplatformní software
Vyvíjeno vC++
Typ softwaruvývoj software
LicenceBSD licence
Webwww.cmake.org
Některá data mohou pocházet z datové položky.

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.

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

  1. Kulhan, J. CMake:Ulehčete si život, 2006, URL: http://programujte.com/clanek/2009032800-cmake-tutorial

Související články

Externí odkazy

(česky)

(anglicky)

Média použitá na této stránce

Cmake.svg
Autor: Cmake team. Původně soubor načetl Francesco Betti Sorbelli na projektu Wikipedie v jazyce italština. Vectorized by Magasjukur2, Licence: CC BY 2.0
Logo di Cmake
Cmake with Clang screenshot.png
Autor:

Software: LLVM Developer Group and cmake.org

Screenshot:

VulcanSphere, Licence: Apache License 2.0
Screenshot of Clang compiling Neovim with CMake