CMake: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
http://www.cmake.org/cmake/img/CMake-logo-download.jpg
https://cmake.org/cmake/img/CMake-logo-download.jpg


<!-- documentation manual man information help tutorial -->
<!-- documentation manual man information help tutorial -->
Line 9: Line 9:


==Primary Resources - Look here first! ==
==Primary Resources - Look here first! ==
* Where can I [http://www.cmake.org/HTML/Download.html download CMake]?
* Where can I [https://cmake.org/HTML/Download.html download CMake]?
* [http://www.cmake.org/documentation/ CMake Documentation]
* [https://cmake.org/documentation/ CMake Documentation]
* [[CMake Useful Variables|Useful CMake Variables]]
* [[CMake Useful Variables|Useful CMake Variables]]
* [[CMake FAQ| FAQ (Frequently asked questions)]]
* [[CMake FAQ| FAQ (Frequently asked questions)]]
* [http://www.cmake.org/mailman/listinfo/cmake CMake Mailing List] (for searchable archives see [[CMake_FAQ#Where_can_I_find_searchable_CMake_Mailing_Archives | CMake FAQ ]])
* [https://cmake.org/mailman/listinfo/cmake CMake Mailing List] (for searchable archives see [[CMake_FAQ#Where_can_I_find_searchable_CMake_Mailing_Archives | CMake FAQ ]])
* [[CMake_2.6_Notes|CMake 2.6 Notes]]
* [[CMake_2.6_Notes|CMake 2.6 Notes]]
* ''Getting Started With CMake'' Screencasts @[http://playcontrol.net/ewing/screencasts/getting_started_with_cmake_.html PlayControl.net]
* ''Getting Started With CMake'' Screencasts @[http://playcontrol.net/ewing/screencasts/getting_started_with_cmake_.html PlayControl.net]
Line 36: Line 36:


===Basic Introductions===
===Basic Introductions===
* [http://www.cmake.org/HTML/Examples.html A Simple CMake Example]
* [https://cmake.org/HTML/Examples.html A Simple CMake Example]
* [http://www.linuxjournal.com/article/6700 Cross-Platform Software Development Using CMake]
* [http://www.linuxjournal.com/article/6700 Cross-Platform Software Development Using CMake]
* [http://clubjuggler.livejournal.com/138364.html CMake: The Cross Platform Build System]
* [http://clubjuggler.livejournal.com/138364.html CMake: The Cross Platform Build System]
Line 44: Line 44:
* [http://hackerwithin.org/thw/plugin_wiki/page/buildsystems The Hacker Within: Build Systems] Explains why and how to use build systems with a CMake example.
* [http://hackerwithin.org/thw/plugin_wiki/page/buildsystems The Hacker Within: Build Systems] Explains why and how to use build systems with a CMake example.
* Syntax of the CMake language
* Syntax of the CMake language
** [http://www.cmake.org/HTML/syntax.html A quick introduction to CMake syntax]
** [https://cmake.org/HTML/syntax.html A quick introduction to CMake syntax]
** [[CMake/Language Syntax | Language syntax]] (wiki page)
** [[CMake/Language Syntax | Language syntax]] (wiki page)
** [[CMake:VariablesListsStrings| On variables, lists, strings, maps, regexps, etc.]]
** [[CMake:VariablesListsStrings| On variables, lists, strings, maps, regexps, etc.]]

Revision as of 02:55, 24 September 2015

CMake-logo-download.jpg

Welcome to CMake, the cross-platform, open-source make system. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. CMake is quite sophisticated: it is possible to support complex environments requiring system configuration, pre-processor generation, code generation, and template instantiation.

You will find here not only documentation for CMake, but also for CPack and CTest.

CMake

Primary Resources - Look here first!

Development Topics

Tutorials

Basic Introductions

Finding stuff and platform checking

  • How to find libraries
    Describes how to use external libraries in a CMake project and how to write your own find modules for libraries that don't already have one.

How to use CMake with specific Libraries

  • Qt with CMake
    Explains how to use CMake to build software with Qt4, Qt3 and KDE3.

Recipes

Converters from other buildsystems to CMake

All converters listed here are not "complete", i.e. the generated CMake files are not 100% finished, in all cases some work is left for the developer.

automake/autotools/autoconf

  • am2cmake (requires Ruby) Converts automake/autotools/libtool based projects to CMake, specialized in converting from KDE 3 to KDE 4, should also work for others. This one has been used for converting the KDE buildsystem to CMake.

qmake

Visual Studio

Basic CMakeLists.txt from-scratch-generator

  • gencmake (requires Ruby) Creates basic CMakeLists.txt files from looking at the existing files.
  • CMakeListGenerator (Win32) Creates complete CMakeLists.txt files as described in the README using a combination of file and directory structure analysis. Supports resolving dependencies between multiple archives.

Success Stories


More Topics

CTest

Tutorials

  • Testing With CTest
    Introduces to testing with CTest, submitting dashboards, and using CMake to add tests to the test system.
  • CTest Scripting
    Describes the scripting with CTest which can significantly simplify and automate testing and submitting dashboards.

More Information

More Topics

CDash


CPack

Tutorials

Recipes




CMake: [Welcome | Site Map]