cmake
CMake 是个跨平台的自动化建构系统,它用组态档控制建构过程(build process)的方式和 Unix 的 Make 相似,只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。CMake 可以编译源代码、制做程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支援 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支援静态与动态程式库的建构。
“CMake”这个名字是 "cross platform make" 的缩写。虽然名字中含有 "make",但是 CMake 和 Unix 上常见的“make”系统是分开的,而且更为高阶。
历史CMake 是为了解决美国国家医学图书馆出资的 Visible Human Project 专案下的 Insight Segmentation and Registration Toolkit (ITK) 软件的跨平台建构的需求而创造出来的,其设计受到了 Ken Martin 开发的 pcmaker 所影响。pcmaker 当初则是为了支援 Visualization Toolkit 这个开放源代码的三维图形和视觉系统才出现的,今日 VTK 也采用了 CMake。在设计 CMake 之时,Kitware 公司的 Bill Hoffman 采用了 pcmaker 的一些重要想法,加上更多他自己的点子,想把 GNU 建构系统 的一些功能整合进来。CMake 最初的实作是在 2000 年中作的,在 2001 年初有了急速的进展,许多改良是来自其他把 CMake 整合到自己的系统中的开发者,比方说,采用 CMake 作为建构环境的 VXL 社群就贡献了很多重要的功能,Brad King 为了支援 CABLE 和 GCC-XML 这套自动包装工具也加了几项功能,奇异公司的研发部门则用在内部的测试系统 DART,还有一些功能是为了让 VTK 可以过渡到 CMake 和支援[[美国 Los Alamos 国家实验室}洛斯阿拉莫斯国家实验室]]的 Advanced Computing Lab 的平行视觉系统 ParaView 而加的。
功能介绍组态档是用一种建构软件专用的特殊编程语言写的 CMake 脚本。
内建 C语言、C++、Fortran、Java 的自动相依性分析功能。
经由 CMake 脚本语言支援 SWIG、Qt、FLTK。
内建对微软 Visual Studio .NET 和过去的 Visual Studio 版本的支援,可以产生 .dsp、.sln 和 .vcproj 档。
用传统的时间标签侦测档案内容的改变。
支援平行建构(在多台电脑上同时建构)
在许多操作系统上进行跨平台编译,包括 Linux、与 POSIX 相容的系统(AIX、*BSD 系统、HP-UX、IRIX、MinGW/MSYS、Solaris)、Mac OS X 和微软 Windows 95/98/NT/2000/XP 等。
产生可以给 Graphviz 用的全局相依图。
已经和 Dart、CTest 和 CPack 等软件测试和释出的工具整合。
应用软件Bullet Physics Engine
KDE (starting with version 4)
The Visualization Toolkit
Insight Segmentation and Registration Toolkit
ParaView
DevIL - Open Image Library
OpenSceneGraph
Scribus
Drishti
PvPGN
Chicken
ParadisEO
Quantum GIS