Welcome to CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. CMake is quite sophisticated: it is possible to support complex environments requiring system introspection, pre-processor generation, code generation and template instantiation. In addition to controling the build process, CMake includes CTest for testing and CPack for packaging. Please go here to learn more about CMake.

CMake was developed by Kitware as part of the NLM Insight Segmentation and Registration Toolkit project. The ASCI VIEWS project also provided support in the context of their parallel computation environment.




  • Features
  • Download
  • Sponsors
  • License
  • Purchase

CMake is an extensible, open-source system that has many powerful features.

Those features include:
  • Supports complex, large build environments. CMake has been proven in several large projects (KDE, ParaView, SecondLife)
  • Generates native build files (e.g., makefiles on Unix; workspaces/projects on MS Visual C++). Therefore, standard tools can be used on any platform/compiler configuration.
  • Powerful system introspection abilities including the ability to find installed include files, libraries and executables. Also the ability to test the compiler for supported features.
  • Integrated testing system called CTest.
  • Integrated packaging system called CPack.
  • Easy integration with CDash and Dart dashboard servers.
  • Powerful scripting language with simple syntax.
  • Supports in-place and out-of-place builds. Multiple compilation trees are possible from a single source tree.
  • Can be easily extended to add new features.
  • CMake is open source, under a liberal BSD license.
  • CMake operates with a cache designed to be interfaced with a graphical editor. The cache provides optional interaction to conditionally control the build process.
  • Ability to create Mac OSX Frameworks and Application Bundles.
  • Supports adding complex custom rules to the build.

Latest Release (2.6.0)

  • The 2.6.0 release was packaged with CPack which is included as part of the 2.6.0 release.
  • The .sh files are self extracting gziped tar files. To install a .sh file, run it with /bin/sh and follow the directions.
  • The OS-machine.tar.gz files are gziped tar files of the install tree.
  • The OS-machine.tar.Z files are compressed tar files of the install tree.
  • The tar file distributions can be untared in any directory. They are prefixed by the version of CMake. For example, the SunOS-sparc tar file is all under the directory cmake-2.6.0-SunOS-sparc. This prefix can be removed as long as the share, bin, man and doc directories are moved relative to each other.
  • To build the source distributions, unpack them with zip or tar and follow the instructions in Readme.txt at the top of the source tree Source distributions.

PlatformFiles
Unix/Linux Source (has \n line feeds)cmake-2.6.0.tar.gz
cmake-2.6.0.tar.Z
Windows Source (has \r\n line feeds)cmake-2.6.0.zip

Binary distributions:
PlatformFiles
Windows (Win32 Installer)cmake-2.6.0-win32-x86.exe
Windows ZIPcmake-2.6.0-win32-x86.zip
Mac OSX Universal (.dmg installer only for Tiger)cmake-2.6.0-Darwin-universal.dmg
cmake-2.6.0-Darwin-universal.tar.gz
cmake-2.6.0-Darwin-universal.tar.Z
Linux i386cmake-2.6.0-Linux-i386.sh
cmake-2.6.0-Linux-i386.tar.gz
cmake-2.6.0-Linux-i386.tar.Z
SunOS Sparccmake-2.6.0-SunOS-sparc.sh
cmake-2.6.0-SunOS-sparc.tar.gz
cmake-2.6.0-SunOS-sparc.tar.Z
IRIX64 64cmake-2.6.0-IRIX64-64.sh
cmake-2.6.0-IRIX64-64.tar.gz
cmake-2.6.0-IRIX64-64.tar.Z
IRIX64 n32cmake-2.6.0-IRIX64-n32.sh
cmake-2.6.0-IRIX64-n32.tar.gz
cmake-2.6.0-IRIX64-n32.tar.Z
HPUX 9000/785cmake-2.6.0-HP-UX-9000_785.sh
cmake-2.6.0-HP-UX-9000_785.tar.gz
cmake-2.6.0-HP-UX-9000_785.tar.Z
AIX powerpccmake-2.6.0-AIX-powerpc.sh
cmake-2.6.0-AIX-powerpc.tar.Z
cmake-2.6.0-AIX-powerpc.tar.gz

Other types of download

Please see the complete download page for more information.

Many generous sponsors and contributors have supported this work.

The supporting agencies and institutes supporting this work include:

National Library of Medicine (NLM) - Dr. Terry Yoo at NLM/NIH is sponsoring the bulk of this work as part of the Insight segmentation and registration toolkit (ITK). CMake was originally created for the multi-platform support necessary for ITK.
Insight Segmentation and Registration Toolkit - ITK is the original sponsoring project for CMake. ITK is being funded by NLM to develop cutting-edge algorithms and techniques to support the Visible Human Project.
ASCI VIEWS Project - Jim Ahrens at the Advanced Computing Laboratory at Los Alamos National Lab is technical project leader. He has supported the deployment of CMake for building parallel processing applications.
Sandia National Laboratories - Ken Moreland is the project lead for ParaView at Sandia. The ParaView project continues to support many parts of CMake development.
NA-MIC Project - National Alliance for Medical Image Computing (NAMIC) is funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from the NIH Roadmap for Bioinformatics and Computational Biology.

CMake is distributed under BSD License

Copyright (c) 2008, Kitware, Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of Kitware, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY Kitware, Inc. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Kitware Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Kitware offers consulting on CMake

  • On-Site training and a 1-day course on software process.
  • The CMake Book to get started with CMake.
  • Hosting of your personal Software Quality System.

call us at (518) 371-3971 for more information.