Kitware/CMake
FreeMirror of CMake upstream repository
FreeFree tier
About Kitware/CMake
CMake is a cross-platform, open-source build system generator. It allows developers to describe the build process of their software using a simple, platform-independent configuration language (CMakeLists.txt). CMake then generates native build files (such as Makefiles, Visual Studio solutions, and Xcode projects) for a wide variety of compilers and operating systems, including Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris, and AIX. Maintained by Kitware, CMake is widely adopted in the C++ ecosystem and supports extensive testing via CTest, packaging via CPack, and integration with CI/CD pipelines.
Key Features
Cross-platform support (Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris, AIX)
Generates native build files (Makefiles, Visual Studio, Xcode, etc.)
Open-source under BSD 3-Clause License
Extensive testing with CTest and packaging with CPack
Modular and extensible with .cmake modules
Large community and documentation (Home Page, Documentation Page, Community Wiki)
Supports C++11 and later compilers
Vendored dependencies for ease of building from source
Pros & Cons
Pros
- Widely adopted industry standard for C++ build systems
- True cross-platform support with consistent behavior
- Open source with permissive BSD license
- Rich ecosystem of modules and find scripts
- Active development and community support (Kitware, GitHub, Discourse)
- Comprehensive documentation and testing tools
Cons
- Steep learning curve for beginners due to complex syntax and concepts
- CMake language can be verbose and error-prone
- Debugging build issues can be challenging
- Not ideal for very simple projects with no cross-platform needs
Best For
Building C++ and C projects across multiple platformsManaging complex build configurations and dependenciesAutomating software packaging and installation (CPack)Running test suites with CTestDeveloping cross-platform libraries and applicationsContinuous integration and deployment workflows
FAQ
What is CMake?
CMake is a cross-platform, open-source build system generator. It produces native build files for various compilers and operating systems from a simple configuration language.
Who maintains CMake?
CMake is maintained and supported by Kitware and developed in collaboration with a productive community of contributors.
What platforms does CMake support?
CMake supports Microsoft Windows, Apple macOS, Linux, FreeBSD, OpenBSD, Solaris, and AIX. Other UNIX-like systems may also work.
How do I build CMake from source?
You can build CMake using an already-installed CMake or from scratch by running the bootstrap script in the source directory, followed by make and make install.
What license does CMake use?
CMake is distributed under the OSI-approved BSD 3-clause License.