CMake 3.22 发行说明

自 CMake 3.21 以来的更改包括以下内容。

新特性

命令

变量

属性

模块

CTest

  • ctest(1) 学会了识别在运行时附加到测试的标签。以前,只能通过使用 LABELS 测试属性在配置时将标签附加到测试。有关更多信息,请参阅 其他测试度量

  • ctest(1) 学会了能够通过 ENVIRONMENT_MODIFICATION 属性修改测试的环境。这允许根据测试时存在的环境更新环境变量。

  • ctest_memcheck() 命令现在还生成一个 DynamicAnalysis-Test.xml 文件,该文件可用于将测试结果提交到 CDash。

CPack

已弃用和移除的特性

其他更改

  • Compile Features 功能现在可以在未指定标准级别时正确禁用或启用编译器扩展,并避免在请求的设置与编译器的默认设置匹配时,不必要地添加语言标准标志。请参阅 CMP0128

  • Compile Features 功能现在忽略未启用语言的特性。

  • Ninja 生成器 现在使用 ccmake(1) (如果可用)实现 edit_cache 目标。

  • NinjaNMake Makefiles 生成器现在对系统包含使用 MSVC -external:I 标志。这从 VS 16.10(工具链版本 14.29.30037)开始可用。

  • CPack NSIS Generator 现在需要 NSIS 3.03 或更高版本。

更新

自 CMake 3.22.0 以来的更改包括以下内容。

3.22.1

  • 此版本未对已记录的特性或接口进行任何更改。进行了一些实现更新以支持生态系统更改和/或修复回归。

3.22.2

  • 修复了 CMP0128OLD 行为,即使指定的标准与编译器默认值匹配,也添加标志。

3.22.3

  • while() 命令再次忽略条件评估中的错误,就像 CMake 3.21 及更低版本一样。此错误在 3.22.0 中已修复,但暴露了现有项目中的错误。修复已还原以恢复兼容性。修复可能会通过策略在 CMake 的未来版本中恢复。

3.22.4, 3.22.5, 3.22.6

  • 这些版本未对已记录的特性或接口进行任何更改。进行了一些实现更新以支持生态系统更改和/或修复回归。