← Software

CMake

A cross-platform meta-build system.

CMake logo

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.

License: BSD-3-Clause

Category: Build system

Website: https://cmake.org/

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
PreviousClojure NextConsul

This site is currently in Beta. Contact: Chris Paton

Textbook of AI · Textbook of Usability · Textbook of Digital Health

Auckland Maths and Science Tutoring