CMake: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(→CMake) |
(→CMake) |
||
Line 6: | Line 6: | ||
You will find here not only documentation for CMake, but also for CPack and CTest. | You will find here not only documentation for CMake, but also for CPack and CTest. | ||
=CMake= | |||
==Primary Resources - Look here first! == | |||
* Where can I [http://www.cmake.org/HTML/Download.html download CMake]? | * Where can I [http://www.cmake.org/HTML/Download.html download CMake]? | ||
* [http://www.cmake.org/HTML/Documentation.html CMake Documentation] | * [http://www.cmake.org/HTML/Documentation.html CMake Documentation] | ||
Line 16: | Line 16: | ||
* [[CMake_2.6_Notes|CMake 2.6 Notes]] | * [[CMake_2.6_Notes|CMake 2.6 Notes]] | ||
==Development Topics== | |||
* [[CMake Cross Compiling| Cross compiling]] | * [[CMake Cross Compiling| Cross compiling]] | ||
* [[CMake RPATH handling|RPATH handling]] | * [[CMake RPATH handling|RPATH handling]] | ||
Line 26: | Line 26: | ||
* [[CMake Released Versions|Documentation for previous releases]] | * [[CMake Released Versions|Documentation for previous releases]] | ||
==Tutorials== | |||
===Basic Introductions=== | |||
* [http://www.cmake.org/HTML/Examples.html A Simple CMake Example] | * [http://www.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] | ||
Line 38: | Line 38: | ||
** [[CMake:VariablesListsStrings| On variables, lists, strings, maps, regexps, etc.]] | ** [[CMake:VariablesListsStrings| On variables, lists, strings, maps, regexps, etc.]] | ||
===Specific Topics=== | |||
* [[CMake:How_To_Find_Libraries | How to find libraries]] <br>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. | * [[CMake:How_To_Find_Libraries | How to find libraries]] <br>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. | ||
* [[CMake:Eclipse_UNIX_Tutorial | How to use CMake with Eclipse CDT]] <br> Describes how to use CMake with Eclipse CDT. | * [[CMake:Eclipse_UNIX_Tutorial | How to use CMake with Eclipse CDT]] <br> Describes how to use CMake with Eclipse CDT. | ||
Line 70: | Line 70: | ||
==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. | 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. | ||
Line 91: | Line 91: | ||
==Success Stories== | |||
* What are some [[CMake Projects|projects using CMake]]? | * What are some [[CMake Projects|projects using CMake]]? | ||
Line 98: | Line 98: | ||
==More Topics== | |||
* [[CMake Fortran Issues|Fortran Issues]] | * [[CMake Fortran Issues|Fortran Issues]] |
Revision as of 12:57, 11 January 2009
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!
- Where can I download CMake?
- CMake Documentation
- Useful CMake Variables
- FAQ (Frequently asked questions)
- CMake Mailing List
- CMake 2.6 Notes
Development Topics
- Cross compiling
- RPATH handling
- Editors/IDEs with CMake syntax support
- Docs for Specific Project Generators (Eclipse, KDevelop3, CodeBlocks, Makefile)
- Contributed macros
- Module Maintainers
- Platform Dependent Information
- Documentation for previous releases
Tutorials
Basic Introductions
- A Simple CMake Example
- Cross-Platform Software Development Using CMake
- CMake: The Cross Platform Build System
- "Learning CMake" - Slides of a CMake workshop, including CPack, CTest and CDash
- Syntax of the CMake language
Specific Topics
- 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 Eclipse CDT
Describes how to use CMake with Eclipse CDT. - How to write platform checks with CMake
Describes how to implement platform or configure checks with CMake.
- How to find installed software with CMake
Describes how to search for and then use software packages with CMake.
- How to find and use existing frameworks on OS X
A quick example to help OS X users find frameworks automatically.
- Qt with CMake
Explains how to use CMake to build software with Qt4, Qt3 and KDE3.
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.
- Alternative Automake2CMake (requires PHP) Converts KDevelop projects that use automake to CMake.
qmake
- qmake converter (requires Ruby) Converts projects that use Qt's qmake.
Visual Studio
- vcproj2cmake.rb (requires Ruby) Creates CMakeLists.txt files by extracting info from Visual Studio project files.
Basic CMakeLists.txt from-scratch-generator
- gencmake (requires Ruby) Creates basic CMakeLists.txt files from looking at the existing files.
Success Stories
- What are some projects using CMake?
- Articles about CMake
- Really Cool CMake Features
More Topics
- Fortran Issues
- For CMake Hackers
- Experiments With Lua
- Performance Tips
- Replacing deprecated INSTALL_FILES, INSTALL_PROGRAMS and INSTALL_TARGETS commands
- GNU style directory layout with CMake
- CMake TODO
- Creating Qt Assistant Docs
- Writing FindXXX.cmake modules that work with static libraries
- Writing FindXXX.cmake modules that work when multiple versions of packages are installed
- CMake:Improving Find* Modules
- C Plugins for Loadable Commands
For anyone who wonders what the load_command command is for.
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.
- Generating Input Files For CTest
Describe more in details the concepts behind testing with CTest and also explans how to use CTest without using CMake.
More Information
- Configuring CTest Submission Methods
- CTest Nightly, Experimental, Continuous, ...
- CTest:Coverage
- Media:CTest Running Modes.pdf
- CTest Frequently asked questions
More Topics
CPack
Tutorials
- Packaging with CPack
Introduction to CPack, installing and packaging of software. - CPack Variables
- Supported package formats
- CPack Win32 Newbie Checklist
More Information
CDash