CMake, 4.3版本, 正式发布了, 带来了多项重要更新, 其中有CPS包规范支持, 有构建观测能力, 还有命令行归档功能增强, 这一版本, 在CMake生态里, 扮演着关键的过渡角色。
在CMake 4.3 的发展进程当中, 引入了针对CPS, 也就是CMake Package Specification包规范的全面支持情况。这一全新的功能, 致使CMake具备了导入以及导出由CPS形容的包信息的能力, 极大程度上提升了包管理的互操作性。
通过cmake --find-package这个命令, 能够去搜索以及导入CPS包, 而cmake --build以及cmake --install这两个命令, 增加了cps子命令, 其作用是用来生成CPS包描述文件, 这为跨构建系统的包共享提供了标准化路径。
4.3版本增添了cmake - ctest(7)工具, 用到了用于收集配置步骤的时间、目标和系统诊断信息, 用于收集生成步骤的时间、目标和系统诊断, 信息, 用于收集构建步骤的时间、目标和系统诊断信息, 用于收集测试步骤的'时间、目标和系统诊断信息, 用于收集安装步骤的时间、目标和系统诊断, 信息等流程。该功能示意着CMake自单纯构建文件生成工具到构建’流程‘观测平台的转变。
所收集到的数据, 能够被提供给回调处理器, 能够被用以生成Trace Event文件用于展开可视化分析, 可让开发者更清晰明晰地把构建过程之中存有的瓶颈以及异常了解清楚, 进而能够为性能优化提供数据方面的支撑。
CMake 4.3对命令行以及压缩归档能力予以了增强, cmake -E tar命令如今支持压缩级别, 支持压缩方法, 还支持多线程操作。这些改进将打包效率显著提升, 特别适用于大型项目的发布流程。
变动后的情况是, 新添的使得结构化版本信息输出得以供给的cmake --version=json-v1命令出现, 其便利性致使脚本更容易解析, 也让自动化集成便于操持。这些改变产生效应了什么呢, 那就是额外脚本工具的依赖被削减了, 这一削减促使CI/CD流程的一致性得以提升, 也推动了可自动化程度的提高。

长久以来, C/C++生态里的包发现以及依赖描述始终是构建系统中的繁杂棘手难题, 传统CMake的Find模块, pkg-config文件, 还有包管理器元数据分别依照不一样规则, 致使互操作性方面存在障碍。
CPS规范被引入, 目的在于提升包描述的表达能力, 以及互操作性, 使得第三方构建系统能够以一种更为统一的方式去消费包信息。对于开源库维护者来讲, 这是一项值得予以关注的重大变化。对于系统包维护者而言, 同样是一项值得予以关注的重大变化。
官方注解清晰表明, 4.3版本于4.4发布以前有着关键的过渡功能, 此版本为CMake生态的进一步发展奠定了根基, 尤其是在包管理以及构建可观测性层面。
CPS支持被引入,观测能力被构建, CMake正逐步解决长期存在的问题, 是互操作性问题, 4.3版本实现既定职责, 为后续版本改进铺好了顺畅前行的道路, 给开发者给予能被更好运用的强大工具链支持。
对运用CMake的开发者而言, 4.3版本带来了更为规范的包管理方式, 带来了更为透明的构建流程。这些改进会使跨平台构建的复杂度降低, 会让开发效率得到提高。
CPS规范被采用, 这表明不同构建系统彼此之间的包共享会更顺利, 随着4.4版本渐渐靠近, 我们能够期望更多相关功能得以完善, 以及生态进一步被整合。
各位从事开发工作的人员, 你们觉得CPS包规范是不是能够切实解决C以及C++生态的相互操作性的问题呢? 欢迎在评论区域分享你自己的观点, 点赞并且分享这篇文章以使更多的人知晓这些更新。