CMake 3.23 Γѡ

CMake 3.22 ©±Â·¶Ëµ¥²¿¶þÖ®Ëù³ö²¡:

µ±¶È

ÃÐ͵

ρÎÊ

命令行

编译器

  • 基于 LLVM 的 IBM Open XL C/C++ 编译器现受支持,其编译器 ID 为 IBMClang

  • MCST LCC 编译器现受支持,其编译器 ID 为 LCC。请参阅策略 CMP0129

基于文件的 API

  • cmake-file-api(7)“codemodel”版本 2 version 字段已更新为 2.4

  • cmake-file-api(7)“codemodel”版本 2 directory 对象 installers 字段获取了一种新的 fileSet 安装程序类型。

命令

  • define_property() 命令增加了一个新的 INITIALIZE_FROM_VARIABLE 选项,使其在创建目标时用一个变量初始化目标属性。

  • install(TARGETS) 命令增加了一个新的 FILE_SET 参数,可用于安装与目标相关联的头文件集。

  • string(TIMESTAMP)file(TIMESTAMP) 命令现在支持用于微秒的 %f 说明符。

  • target_sources() 命令增加了一个新的 FILE_SET 模式,可用于将文件标头添加为目标的仅标头源文件。

变量

属性

模块

CTest

CPack

已弃用和已移除功能

  • cmake(1) 现在在指定多个源路径时发出警告,如 cmake -S src1 src2 中指定多个源路径时。此功能从未正式记录或获得支持,但旧版本意外地接受了多个源路径并使用了最后指定的路径。请更新脚本以避免传递多个源路径参数。

  • cpack(1) 未记录的 OSXX11 生成器已移除。

  • CPack.distribution.dist.in 模板中使用的之前未记录的 CPACK_PACKAGEMAKER_CHOICES 变量已替换为新的 CPACK_APPLE_PKG_INSTALLER_CONTENT 变量。这仅影响提供自己自定义 CPack.distribution.dist.in 模板文件但仍然依赖于已设置 CPACK_PACKAGEMAKER_CHOICES 的项目。应该更新这些自定义模板文件以使用 CPACK_APPLE_PKG_INSTALLER_CONTENT,或者完全定义所有模板文件内容而无需依赖于替换任一变量。

其他更改

更新

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

3.23.1

  • CMake 3.23.0 中新增的 target_sources() FILE_SET 功能尚未在 Apple FRAMEWORK 目标中正确放置头文件。在未来版本的 CMake 中进行进一步工作前,目前 Apple 平台上对此类目标添加类型为 FILE_SETHEADERS 会出错。

  • CMake 3.23.0 中新增的 HEADER_SETSINTERFACE_HEADER_SETS 目标属性现在是 target_sources() 命令创建的头文件集的只读记录。

3.23.2

  • CPack.distribution.dist.in 模板文件中使用的 CPACK_PACKAGEMAKER_CHOICES 变量在 CMake 3.23.0 中被新的 CPACK_APPLE_PKG_INSTALLER_CONTENT 变量所替代。这打破了已提供自己的模板文件但仍希望定义 CPACK_PACKAGEMAKER_CHOICES 变量的项目。现在的旧 CPACK_PACKAGEMAKER_CHOICES 变量也已被设置为以前的内容,但它正式弃用。

3.23.3、3.23.4、3.23.5

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