CMake 3.24 发行说明

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

新特性

预设

  • cmake-presets(7) 文件现在支持模式版本 5

  • cmake-presets(7) 文件现在支持 ${pathListSep} 宏,该宏根据平台扩展为 :;

  • cmake-presets(7) 文件增加了对在测试预设中指定 testOutputTruncation 字段的支持,该字段指定达到最大测试输出大小后使用的截断模式。

生成器

  • Green Hills MULTI 生成器现在生成构建规则,以便在任何 CMake 文件更新时重新运行 CMake。

  • Visual Studio 生成器 现在在使用 VS 2019 Update 11 或更高版本时支持 SYSTEM 标头。

命令行

编译器

  • LLVM 的 flang Fortran 编译器现在在某些平台上受支持,编译器 ID 为 LLVMFlang

  • ADSP 编译器支持(SHARC 和 Blackfin)现在涵盖 CCES 和 VDSP++ 安装,所需的配置现在在编译器模块本身中完成,而不是在 Generic-ADSP 平台模块中完成。

平台

  • 添加了一个专用的 ADSP 平台来替换现有的 Generic-ADSP 实现。此功能具有自动检测最新的 CCES/VDSP++ 安装和编译器选择(cc21kccblkfn)的功能,基于 CMAKE_SYSTEM_PROCESSOR 变量。

命令

变量

属性

模块

生成器表达式

CTest

CPack

  • CPack WIX Generator 获得了一个新变量 CPACK_WIX_ARCHITECTURE,用于指定安装程序架构,以支持运行 Windows for ARM 的计算机。

  • CPack 现在支持 CPACK_THREADS 选项,用于在使用 libarchive 3.6 或更高版本编译时进行 zstd 压缩。cmake.org 上的官方 CMake 二进制文件支持此功能。

已弃用和删除的功能

其他更改

  • 在构建目录中的第一次 CMake 运行期间启用相应的语言时,CMake 不再设置环境变量,例如 CCCXX 等。请参阅策略 CMP0132

  • CheckIPOSupported 模块 check_ipo_supported() 命令现在使用调用者的 CMAKE_<LANG>_FLAGSCMAKE_<LANG>_FLAGS_<CONFIG> 值。请参阅策略 CMP0138

  • 当未显式指定编译器时,MSYS MakefilesMinGW Makefiles 生成器现在选择在 PATH 环境变量列出的目录中找到的第一个编译器(任何名称)。

  • try_compile() 命令 whole-project 签名现在传播平台变量。请参阅策略 CMP0137

  • while() 命令现在诊断条件评估期间的错误。请参阅策略 CMP0130

  • cmake.org 上提供的预编译 macOS 二进制文件不再将 SLA 附加到 .dmg 包。删除此项是因为 macOS 12 弃用了用于附加 .dmg 资源的工具。

  • cmake.org 上现在提供预编译的 Windows arm64 二进制文件。

更新

自 CMake 3.24.0 以来进行的更改包括以下内容。

3.24.1, 3.24.2

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

3.24.3

  • 3.24.0 中添加的 LLVMFlang Fortran 编译器支持已得到扩展

    • 它现在支持 Fortran 和 C 或 CXX 之间的混合语言链接。

    • 它现在支持 Windows 上的 GNU ABI (MinGW),但尚不支持 MSVC ABI。

  • 进行了一些实现更新,以支持生态系统更改和/或修复回归。

3.24.4

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