CMake 3.22.0 发布,开源构建系统
CMake 是一个跨平台的自动化构建系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。
CMake 3.22.0 发布,更新内容如下:
- 命令:
cmake_host_system_information()命令现在能够从/etc/os-release文件中查询操作系统识别变量。string(TIMESTAMP)命令现在支持用于 ISO 8601 周数的 %V 指定符。
- 变量:
- 新增了
CMAKE_BUILD_TYPE环境变量,为CMAKE_BUILD_TYPE变量提供了一个默认值。 - 增加了
CMAKE_CONFIGURATION_TYPES环境变量,为CMAKE_CONFIGURATION_TYPES变量提供默认值。 - 新增了
CMAKE_INSTALL_MODE环境变量,用于告诉 install() 规则安装符号链接而不是复制文件。 - 新增了
CMAKE__LINK_WHAT_YOU_USE_FLAG和CMAKE_LINK_WHAT_YOU_USE_CHECK变量,用于控制LINK_WHAT_YOU_USE目标属性使用的链接器标志和检查。 - 新增了
CMAKE_REQUIRE_FIND_PACKAGE_变量,用于将非必需的 find_package() 调用变成必需的。
- 新增了
- 属性:
- 现在 _EXTENSIONS 目标属性被初始化为
CMAKE__EXTENSIONS_DEFAULT,由编译器检测。 - VS_SETTINGS 源文件属性现在支持所有源文件类型,之前它只对非构建的源文件起作用。
- 现在 _EXTENSIONS 目标属性被初始化为
- 弃用和删除的功能:
- Visual Studio 10 2010 生成器现在已被弃用,并将在未来的 CMake 版本中被移除。
- 其他变化:
- 当没有指定标准级别时,编译功能现在可以正确地禁用或启用编译器扩展,并且如果要求的设置与编译器的默认值一致,则可以避免不必要地添加语言标准标志。
- 编译特性功能现在会忽略未启用的语言的特性。
- Ninja 生成器现在使用 ccmake(1) 来实现 edit_cache 目标(如果有的话)。
- CPack NSIS 生成器现在需要 NSIS 3.03 或更高版本。
更多详情可查看:https://blog.kitware.com/cmake-3-22-0-available-for-download/