CMake是个一个开源的跨平台自动化建构系统，用来管理软体建置的程序，并不依赖于某特定编译器，并可支援多层目录、多个应用程式与多个函式库。它用组态档控制建构过程（build process）的方式和Unix的make相似，只是CMake的组态档取名为CMakeLists.txt。CMake并不直接建构出最终的软体，而是产生标准的建构档（如Unix的Makefile或Windows Visual C++的projects/workspaces），然后再依一般的建构方式使用。这使得熟悉某个整合开发环境（IDE