CMake 4.4 正式推出, 这是一回涵盖诊断、配置管理以及工具链的深度更新, 新版引入全新的诊断系统, 其支持自定义配置文件, File - Based API 提升到 2.11 版本, 并且对 Ninja 和 CUDA 等关键工具链进行了优化。
在 CMake 4.4 当中, 导入了全新的诊断框架, 得以借助新增的 diagnostic() 命令, 达成更为精细的诊断分类管理。对于开发者而言, 可以依据类别去过滤警告以及错误, 而不再依靠分散的命令行参数。这样的一套机制, 使得项目级、用户级以及 CI 环境里的诊断策略变得更加统一。
以往, 诊断功能分散存于多个变量以及选项之中, 而新系统把它们整合至统一框架里, 如此一来, 开发者能够更加条理清晰地追踪问题出处, 进而减少误报所带来的干扰。
CMake 4.4 起, 对配置文件 v12 予以支持, cmake 工具增添了 ---file 参数, ctest 工具添加了 ---file 参数, cpack 工具也加入了 ---file 参数, 此功能准许从指定文件去加载配置, 不再限定于默认的 CMakePresets.json 或者 CMakeUserPresets.json。
就大型项目而言, 此改动颇具价值, 单仓多项目亦是如此, SDK 工程同样如此, 企业模板亦是这般。不同构建场景之下, 能运用更明晰的配置文件, 进而提升项目管理效率。

基于文件的应用程序编程接口已更新至二点一一版本, 进而为集成开发环境、编辑器以及工具链集成提供更深入服务。CTest数据版本同步提升至一点一, 能够支持捕获命令输出以及编译跟踪文件。
对于那些构建性能分析、CI诊断以及工具链可观测性而言, 这些增强功能均具备一定的辅助作用,借由这些增强功能, 开发者能够实现对慢构建的精准定位, 能够实现对配置异常情况的精准定位, 还能够实现对测试瓶颈的精准定位。
CMake 4.4, 针对 Ninja 生成器, 做出了多项改进之举措, 其中涵盖增强测试准备目标的支持这一方面。这些基于此而有的优化设置, 使得 Ninja 在现代构建流程当下的表现, 变得更加稳定且高效。
支持CUDA C++23标准的新版, 改进了cmake --install的并行安装能力, 改进了cmake --install的多组件安装能力, 这些更新使得跨平台构建变得更加灵活。
CPack 同样增添了多个命令选项以及模块能力, 使得打包流程变得更为完善。从整体去看, CMake 4.4 针对现代构建系统的管理、诊断、自动化以及工具集成展开了全面的升级。
做开发工作的那些人, 在他们所进行的各种各样的项目里, 会不会运用CMake 4.4出现的那些全新的特性呢, 欢迎来到评论区域, 把你的想法见解分享出来。