Really Cool CMake Features

From KitwarePublic
Revision as of 13:45, 15 February 2008 by Hoffman (talk | contribs) (New page: 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. CMake comes with three main packages CMake, CTest, and CPack. ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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. CMake comes with three main packages CMake, CTest, and CPack.

Major (and minor features for CMake)

  • 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 IDE's 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
  • 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
  • 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
  • CPack
    • packaging with cpack, supports also rpm and deb (need feedback)