CMake

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more 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. +more 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. txtV systému Windows je součástí programu grafické uživatelské rozhraní, přes které lze celý proces pohodlně nakonfigurovat. +more 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:

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í. +more Výstup je nastaven příkazem ADD_EXECUTABLE. V příkladu jím bude spustitelný soubor s názvem "foo".

Reference

Externí odkazy

[url=http://programujte. com/clanek/2009032800-cmake-tutorial]CMake - tutoriál[/url] * [url=http://www. +moreabclinuxu. cz/stitky/makefile]Soubor článků s tématem Makefile[/url] * [url=https://web. archive. org/web/20150213204017/http://www. linuxsoft. cz/article. php. id_article=722]Překlad s gcc[/url] * [url=http://www. abclinuxu. cz/clanky/programovani/cmake-zjednodus-si-zivot]Cmake: zjednoduš si život[/url].

* [url=http://www. cmake. +moreorg]Domovská stránka softwaru CMake[/url] * [url=http://www. cmake. org/Wiki/CMake]Wiki nápověda softwaru CMake[/url] * [url=http://www. itk. org/]Domovská stránka softwaru Insight Segmentation and Registration Toolkit[/url].

Kategorie:Software Kategorie:Překladače Kategorie:Software pod licencí BSD

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top