Really Cool CMake Features
From KitwarePublic
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)