Really Cool CMake Features: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
(.tar.gz)
(Replace content with link to new CMake community wiki)
 
(18 intermediate revisions by 11 users not shown)
Line 1: Line 1:
Here is a feature list of CMake that is in no particular order.  There are a lot of small and big things that CMake can do and many go unnoticed or are taken for granted. The idea is to try to create a comprehensive list of cool features both great and small. CMake comes with three main packages CMake, CTest, and CPack, so the features are listed under each of those packages.
{{CMake/Template/Moved}}


 
This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Really-Cool-CMake-Features here].
 
== CMake Features ==
 
 
* Color output for make
* Progress output for make
* Incremental linking support with vs 8,9 and manifests
* Auto-rerun of cmake if any cmake input files change (works with vs 8, 9 using ide macros)
* Auto depend information for C++, C, and Fortran
* Full support for library versions
* Full cross platform install system.
* Generate project files for major IDEs: Visual Studio, Xcode, Eclipse, KDevelop
** not tied to make, other generators like ant possible
* Ability to add custom rules and targets
* Compute link depend information, and chaining of dependent libraries
* Works with parallel make and is fast, can build very large projects like KDE on build farms
* make help. make foo.s, make foo.E
* Advanced RPATH handling, full support for all kinds of static/shared libs and plugins, no more cryptic foo.la libtool "libraries"
* Works on many host operating systems (a full list would be good)
* Supports many toolchains: GNU, MS, Borland, Sun, also e.g sdcc
* Full dependencies: build a target in some directory, and everything this target depends on will be up to date
* Extensive test suite and nightly builds/test on many platforms
* modular design (e.g. the Find modules, language, toolchain and OS support files) * > easily extendable
* just one tool instead of automake+autoconf+libtool+m4+shell+make
* provides regular expressions, eliminating need for grep+awk+sed+perl
* portable commands for file and directory manipulation
* .tar.gz archiving available on all platforms.  No need to chase down tar/gzip for Windows.
* it's a native tool, windows devs don't have to deal with POSIX shells, OSX devs can continue to use XCode
* can create OSX library frameworks
* can create OSX application bundles
* Beta cross compiling, to Linux, Windows, eCos, supercomputers, no OS, from 8bit uCs to 64bit CPUs
* support for chrpath, i.e. changing the RPATH without need to actually link again
 
==  CTest Features ==
* Run all or sub-sets of tests for a project
* Submit testing results to Dart 1,2 and CDash
* Run tests that build and run --build-and-test command
 
 
==  CPack Features ==
* Create professional windows installers with NSIS
* Create tar.gz tar.Z on any platform
* Create self extracting tar.gz .sh files
* Create rpm
* Create Debian .deb files
* Create Cygwin setup packages

Latest revision as of 15:41, 30 April 2018


The CMake community Wiki has moved to the Kitware GitLab Instance.

This page has moved here.