Skip to content
EntityQ1023904· pop 22· linked from 90 articles

CMake is a free, cross-platform, software development tool for building applications via compiler-independent instructions. It also can automate testing, packaging and installation. It runs on a variety of platforms and supports many programming languages.

Key facts

Software.name
CMake
Software.logo
CMake logo.svg
Software.logo size
96px
Software.screenshot
Cmake with Clang screenshot.png
Software.developer
Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf
Software.programming language
C, C++
Software.operating system
Cross-platform
Software.genre
Software development tools
Software.license
BSD-3-Clause

via Wikipedia infobox

~12 min read

Encyclopedic overview

27 sections
Contents
  • History
  • Name
  • Features
  • Generators and IDE support
  • Build targets
  • Hierarchical configuration
  • Separate build tree
  • Dependency management
  • Flexible project structure
  • Compiler feature detection
  • Compiler support
  • Packaging
  • GUI
  • Precompiled headers and modules
  • JSON strings
  • Language
  • Command syntax
  • Implementation
  • Additional tools
  • Adoption
  • Build process
  • Examples
  • Hello world
  • Include
  • See also
  • References
  • External links

CMake is a free, cross-platform, software development tool for building applications via compiler-independent instructions. It also can automate testing, packaging and installation. It runs on a variety of platforms and supports many programming languages.

As a meta-build tool, CMake configures native build tools which in turn build the codebase. CMake generates configuration files for other build tools based on CMake-specific configuration files. The other tools are responsible for more directly building, using the generated files. A single set of CMake-specific configuration files can be used to build a codebase using the native build tools of multiple platforms.

Excerpted from Wikipedia’s “CMake” article, available under the CC BY-SA 4.0 licence.