CMake 3.5 发行说明

自 CMake 3.4 以来所做的更改包括以下内容。

新功能

图形用户界面

  • cmake-gui(1) 获得了控制有关已弃用功能的警告的选项。

  • cmake-gui(1) 学习了一个选项来设置工具集以与 VS IDE 和 Xcode 生成器一起使用,很像现有的 -T 选项给 cmake(1) .

  • cmake-gui(1) 获得了一个正则表达式资源管理器,可用于实时创建和评估正则表达式。资源管理器窗口可通过“工具”菜单获得。

命令行

  • -Wdev-Wno-dev cmake(1) 选项现在还默认启用和抑制已弃用的警告输出。

  • 现在可以使用新的 -Werror=dev-Wno-error=dev cmake(1) 选项来控制将开发人员警告抑制为错误。

  • cmake(1) -E` 命令行工具 copycopy_if_differentcopy_directorymake_directory 学会了支持多个输入文件或目录。

命令

变量

特性

  • VS_GLOBAL_<variable> 目标属性现已为 VS 2010 及更高版本实现。以前它只适用于 VS 2008 及以下版本。

模块

  • ExternalProject 模块学习了一个新的 GIT_REMOTE_NAME 选项来控制 git clone --origin 值。

  • FindBoost 模块现在提供导入的目标,例如 Boost::boostBoost::filesystem

  • FindFLEX 模块 FLEX_TARGET 宏学习了一个新的 DEFINES_FILE 选项来指定要生成的自定义输出标头。

  • FindGTest 模块现在提供导入的目标。

  • FindGTK2 模块,当启用 GTK2_USE_IMPORTED_TARGETS 时,现在将 GTK2_LIBRARIES 设置为包含导入目标的列表,而不是库的路径。此外,它现在设置了一个新的 GTK2_TARGETS 变量,其中包含所有导入的目标。

  • FindOpenMP 模块学会了支持 Clang。

  • FindOpenSSL 模块获得了一个新的 OPENSSL_MSVC_STATIC_RT 选项来使用 MSVC 静态运行时搜索库。

  • FindPNG 模块现在提供导入的目标。

  • FindTIFF 模块现在提供导入的目标。

  • 引入了 FindXalanC 模块来查找 Apache Xalan-C++ XSL 转换处理库。

  • FindXercesC 模块现在提供导入的目标。

平台

  • 添加了对编译器 ID 为“ARMCC”的 ARM 编译器 (arm.com) 的支持。

  • 添加了用于在 Cray Linux 环境中交叉编译目标计算节点的新平台文件。有关使用详细信息,请参阅 Cray Linux 环境的交叉编译

  • Compile Features 功能现在可以识别 Windows (MinGW) 上的 Clang 编译器支持的功能。

  • 在为 iOS 等嵌入式 Apple 平台构建时,CMake 学会了构建和安装包含设备和模拟器构建的组合目标。可以通过设置 IOS_INSTALL_COMBINED 目标属性来启用此行为。

包装

其他

  • 现在默认启用有关已弃用功能的警告。它们可以通过“-Wno-deprecated”或通过将 CMAKE_WARN_DEPRECATED 变量设置为 false 来抑制。

弃用和删除的功能

  • cmake(1) -E time 命令现在可以正确地将带有空格或特殊字符的参数传递给子进程。这可能会破坏使用自己的额外引号或转义来解决该错误的脚本。

  • Xcode 生成器已修复,以与其他生成器一致地转义字符串中的反斜杠。以前解决了 Xcode 生成器上额外级别的反斜杠不一致问题的项目必须更新以删除 CMake 3.5 及更高版本的解决方法。

其他变化

  • Visual Studio 14 2015 生成器学会了将 /debug:fastlink 链接器标志映射到 .vcxproj 文件属性。

  • FindGTK2 模块现在配置 GTK2::sigc++ 导入目标,以便在使用 sigc++ 2.5.1 或更高版本时在其依赖项上启用 c++11。

  • cmake.org 上提供的预编译 Windows 二进制文件现在是 .msi 包,而不是安装程序可执行文件。在安装新包之前,可能需要手动卸载低于 3.5 的 CMake 版本。