CMake

维基百科,自由的百科全书
跳转至: 导航搜索
CMake
Cmake.svg
開發者 Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf
穩定版本 3.0.0 / 2014年6月10日;44天前 (2014-06-10)
預覽版本 3.0.0-rc6 / 2014年5月22日;2個月前 (2014-05-22)
操作系统 跨平台
类型 軟體開發工具
许可协议 3句版 BSD許可證
網站 http://www.cmake.org/

CMake 是個开源跨平台自動化建構系統,它用組態檔控制建構過程(build process)的方式和 UnixMake 相似,只是 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) 這個開放原始碼的三維圖形和視覺系統才出現的,今日 VTK 也採用了 CMake。在設計 CMake 之時,Kitware 公司的 Bill Hoffman 採用了 pcmaker 的一些重要想法,加上更多他自己的點子,想把 GNU 建構系統 的一些功能整合進來。CMake 最初的實作是在 2000 年中作的,在 2001 年初有了急速的進展,許多改良是來自其他把 CMake 整合到自己的系統中的開發者,比方說,採用 CMake 作為建構環境的 VXL 社群就貢獻了很多重要的功能,Brad King 為了支援 CABLE 和 GCC-XML 這套自動包裝工具也加了幾項功能,通用電氣公司的研發部門則用在內部的測試系統 DART,還有一些功能是為了讓 VTK 可以過渡到 CMake 和支援洛斯阿拉莫斯國家實驗室的 Advanced Computing Lab 的平行視覺系統 ParaView 而加的。

更多功能介紹[编辑]

  • 組態檔是用一種建構軟體專用的特殊程式語言寫的 CMake 腳本。
  • 內建 C語言C++FortranJava 的自動相依性分析功能。
  • 經由 CMake 腳本語言支援 SWIGQtFLTK
  • 內建對微軟 Visual Studio .NET 和過去的 Visual Studio 版本的支援,可以產生 .dsp、.sln 和 .vcproj 檔。
  • 用傳統的時間標籤偵測檔案內容的改變。
  • 支援平行建構(在多台電腦上同時建構)
  • 在許多作業系統上進行跨平台編譯,包括 Linux、與 POSIX 相容的系統(AIX*BSD 系統HP-UXIRIXMinGW/MSYSSolaris)、Mac OS X 和微軟 Windows 95/98/NT/2000/XP 等。
  • 產生可以給 Graphviz 用的全局相依圖。
  • 已經和 DartCTestCPack 等軟體測試和釋出的工具整合。

使用 CMake 的應用軟體[编辑]

參見[编辑]

外部連結[编辑]

Wikibooks-logo.svg
您可以在維基教科書中查找此百科条目的相關電子教程: