CMake
A cross-platform meta-build system.
CMake reads a project description in CMakeLists.txt files and generates build files for a native build tool such as GNU Make, Ninja, or Visual Studio. This separation lets a single project description drive builds across Linux, macOS, Windows, and many embedded platforms. The CMake language is ad-hoc and has accumulated many quirks over its long history, but recent "modern CMake" idioms (target-based properties, FetchContent, generator expressions) make idiomatic usage substantially less painful than older patterns.
CMake is widely used by C and C++ projects — LLVM, Qt, KDE, Boost, OpenCV, Blender, FreeCAD, and many scientific computing libraries. It is the de facto build system for cross-platform C/C++ in the same way Maven is for Java. Microsoft Visual Studio has built-in CMake support as a first-class project format.
Kitware Inc. develops CMake and uses it as the build system for their VTK and ITK scientific visualisation libraries. The project is BSD-3-Clause licensed. CTest, CPack, and CDash extend CMake into testing, packaging, and continuous-integration dashboards respectively, making the tool a substantial software development platform rather than just a build configurator.
Install
Debian/Ubuntu: sudo apt install cmake Fedora/RHEL: sudo dnf install cmake Arch: sudo pacman -S cmake macOS: brew install cmake
Authors
- Kitware Inc.
- CMake contributors