时间表
CMake 为美国国立医学图书馆 (NLM) 的 洞察工具包项目创建
- NLM 将Kitware 与三家商业公司和三所大学组成一个团队,创建一个开放源码的 C++ 工具包,用于医学数据的分割和注册。Kitware 因 VTK 的成功而获得了该项目。
- 该合同允许创新,只规定 C++ 工具包必须可移植到 Unix、Windows 和 Mac。在 GE 研究公司使用 autotools 和 gmake 十年后,Bill Hoffman 认为需要一种用于构建 C++ 的新工具。该工具有一些基本规则
- 支持本地构建工具,如 Visual Studio IDE
- 一个输入文件在所有支持的平台上进行构建
- 仅依赖于 C++ 编译器,以便在新的系统上轻松移植和启动
- 支持代码生成器,以便使用工具将 C++ 包装到其他语言中。
在成功地将 CMake 用于 ITK 后,CMake 继续替代 VTK 和 ParaView 中的构建系统。
- VTK 和 ParaView 采用 CMake 引入了合作者和来自 Los Alamos、Sandia 和 Livermore 等国家实验室的资金来源。
精通 CMake:一个跨平台构建系统 由 Ken Martin 和 Bill Hoffman 编写(这本书 现在可作为开源版本获得);CMake 在 Dr. Dobb's 软件工具杂志 和 Linux 杂志 中得到认可。
CMake 从国家医学图像计算联盟 (NA-MIC) 获得了大量的开发资金。
- 慢慢地,CMake 开始被其他开源项目采用。
- KDE 开发人员 Alexander Neundorf 是帮助 KDE 采用 CMake 的支持者。
- Kitware 努力工作,在短短几周内创建了一个原型构建系统。
- CMake 能够比他们之前使用的 scons 系统更快地构建更多的 KDE。
- 使用 CMake,KDE 能够非常快速地将应用程序移植到 Windows 和 Apple。
- CMake 增加了新功能,包括共享库版本控制和无需重新链接的安装 rpath 重写。
- CMake 由所有主要 linux 发行版分发,以便支持 KDE。
采用开源方式在一个小型组织中开发软件由 Ken Martin 和 Bill Hoffman 撰写,并发表于 IEEE Software Journal
第一个适用于 LLVM 编译器的 CMakeLists.txt
ExternalProject 被添加到经过 ARL 资助的 CMake
ninja 生成器被添加到 CMake
Modern CMake由 Stephen Kelly 撰写
- 从 Stephen Kelly 的 Modern CMake 启动的综合使用需求允许项目以一种良好的方式打包“如何使用我”(请参阅 VTK 的构建系统,以便在 2019 年“随处”使用它们)。
LLVM 切换到 CMake,删除了 autoconf
Microsoft Visual Studio 引入了 集成支持 用于 CMake 项目
专业 CMake:实用的指南是由 Craig Scott 撰写的
CMake 预设被整合 到 Microsoft Visual Studio 中;ninja 多配置被添加到 CMake;正在进行的项目开始向 CMake 添加 C++ 20 模块,并获得 Bloomberg 的支持
Bryce Adelstein Lelbach 在他的 C++Now 会议报告“C++ 标准库中应该有哪些内容”中称 CMake 为标准构建系统。
- Bryce 还担任了标准 C++ 库演变小组主席。他在报告中表明我们确实有一个标准构建系统!那就是 CMake。
CMake 推动了编译器描述 C++20 模块依赖信息时使用的标准格式。p1689 已由 Visual Studio、Clang 和 GCC 实现,并且被 CMake 用于支持 C++ 20 模块的构建。