時間軸
CMake 是為美國國家醫學圖書館 (NLM) 的 Insight Toolkit Project 而創建
- 美國國家醫學圖書館 (NLM) 將 Kitware 與三家商業公司和三所大學組成團隊,以創建用於醫學資料分割和配準的開源 C++ 工具組。Kitware 因 VTK 的成功而獲得此殊榮。
- 合約允許創新,僅指定 C++ 工具組必須可移植到 Unix、Windows 和 Mac。在通用電氣研究中心使用 autotools 和 gmake 十年後,Bill Hoffman 認為需要一種新的 C++ 建置工具。該工具有一些基本規則
- 支援原生建置工具,例如 Visual Studio IDE
- 單一輸入檔案即可在所有支援的平台上建置
- 僅依賴 C++ 編譯器,以便於在新系統上移植和啟動
- 支援程式碼產生器,以便工具可用於將 C++ 包裝到其他語言中。
在成功將 CMake 用於 ITK 之後,CMake 接著取代了 VTK 和 ParaView 中的建置系統。
- VTK 和 ParaView 採用 CMake 後,吸引了來自國家實驗室(包括洛斯阿拉莫斯、桑迪亞和勞倫斯利弗莫爾)的合作者和資金。
Mastering CMake: A Cross-Platform Build System 由 Ken Martin 和 Bill Hoffman 撰寫(該書現已開源);CMake 出現在 Dr. Dobb’s Journal of Software Tools 和 Linux Journal 中。
CMake 從美國國家醫學影像運算聯盟 (NA-MIC) 獲得了大量的開發資金。
- CMake 開始慢慢被其他開源專案採用。
- KDE 開發人員 Alexander Neundorf 是協助 KDE 採用 CMake 的功臣。
- Kitware 努力在短短幾週內創建了一個原型建置系統。
- CMake 能夠比他們之前使用的 scons 系統更快地建置更多 KDE 的組件。
- 借助 CMake,KDE 能夠非常快速地將應用程式移植到 Windows 和 Apple。
- CMake 獲得了新功能,包括共享函式庫版本控制和安裝 rpath 重寫,而無需重新連結。
- 為了支援 KDE,所有主要的 Linux 發行版都發行了 CMake。
An Open Source Approach to Developing Software in a Small Organization 由 Ken Martin 和 Bill Hoffman 撰寫,並發表在 IEEE Software Journal 上
LLVM 編譯器的第一個 CMakeLists.txt
ExternalProject 被添加到 CMake,由 ARL 資助
ninja 產生器被添加到 CMake
Modern CMake 由 Stephen Kelly 撰寫
- 由 Stephen Kelly 的 Modern CMake 啟發的全面使用需求,讓專案能夠以友好的方式打包「如何使用我」(cf. VTK 於 2019 年重寫建置系統以「到處」使用它們)。
LLVM 切換到 CMake,移除了 autoconf
Microsoft Visual Studio 為 CMake 專案引入了 整合支援
Professional CMake: A Practical Guide 由 Craig Scott 撰寫
CMake Presets 被整合到 Microsoft Visual Studio 中;ninja multi config 被添加到 CMake;正在進行的專案開始將 C++ 20 Modules 添加到 CMake 中,並獲得 Bloomberg 的支援
在 Bryce Adelstein Lelbach 於 C++Now 會議上以「C++ 標準函式庫中應包含哪些內容?」為題的演講中,CMake 被稱為標準建置系統。
- Bryce 也曾擔任標準 C++ 函式庫演進組的主席。他的演講指出,我們實際上已經有一個標準建置系統了!那就是 CMake。
CMake 驅動了編譯器描述 C++20 模組依賴資訊的標準格式。p1689 已由 Visual Studio、Clang 和 GCC 實作,並由 CMake 用於支援 C++ 20 模組的建置。