CMake 3.5 发行说明¶
自 CMake 3.4 以来的更改包括以下内容。
新特性¶
GUI¶
cmake-gui(1)
获得了控制关于已弃用功能的警告的选项。cmake-gui(1)
学习了一个选项,用于设置要与 VS IDE 和 Xcode 生成器一起使用的工具集,非常类似于cmake(1)
的现有-T
选项。cmake-gui(1)
获得了一个正则表达式浏览器,可用于实时创建和评估正则表达式。浏览器窗口可通过Tools
菜单访问。
命令行¶
命令¶
cmake_parse_arguments()
命令现在以原生方式实现。CMakeParseArguments
模块仍然作为一个空的占位符以保持兼容性。install(DIRECTORY)
命令学习了在目录列表中支持generator expressions
。
变量¶
现在可以使用
-Werror=deprecated
和-Wno-error=deprecated
cmake(1)
选项设置CMAKE_ERROR_DEPRECATED
变量。现在可以使用
-Wdeprecated
和-Wno-deprecated
cmake(1)
选项设置CMAKE_WARN_DEPRECATED
变量。
属性¶
现在为 VS 2010 及更高版本实现了
VS_GLOBAL_<variable>
目标属性。以前它仅在 VS 2008 及更低版本中有效。
模块¶
ExternalProject
模块学习了一个新的GIT_REMOTE_NAME
选项来控制git clone --origin
值。FindBoost
模块现在提供导入的目标,例如Boost::boost
和Boost::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
模块现在提供导入的目标。
平台¶
添加了对 ARM Compiler (arm.com) 的支持,编译器 ID 为
ARMCC
。添加了一个新的平台文件,用于在 Cray Linux 环境中交叉编译以定位计算节点。有关使用详情,请参阅 Cray Linux 环境的交叉编译。
编译特性
功能现在可以识别 Windows (MinGW) 上 Clang 编译器支持的特性。在为 iOS 等嵌入式 Apple 平台构建时,CMake 学习了构建和安装包含设备和模拟器构建的组合目标。可以通过设置
IOS_INSTALL_COMBINED
目标属性来启用此行为。
CPack¶
CPack DragNDrop 生成器
学习了新的变量来指定 AppleScript 文件运行,以自定义DragNDrop
安装程序文件夹的外观,包括使用提供的 PNG 或多分辨率 TIFF 文件设置背景图像。请参阅CPACK_DMG_DS_STORE_SETUP_SCRIPT
和CPACK_DMG_BACKGROUND_IMAGE
变量。CPack DEB 生成器
学习了使用单体或按组件变量设置可选的配置文件Source
字段。请参阅CPACK_DEBIAN_PACKAGE_SOURCE
。CPack DEB 生成器
学习了按组件设置 Package、Section 和 Priority 控制字段。请参阅变量CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
和CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY
。CPack DragNDrop 生成器
学习了向 DMG 添加多语言 SLA,当用户尝试挂载 DMG 时会呈现给用户。有关详细信息,请参阅CPACK_DMG_SLA_LANGUAGES
和CPACK_DMG_SLA_DIR
变量。CPack NSIS 生成器
学习了新的变量以向安装程序添加位图。请参阅CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
和CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
变量。CPack RPM 生成器
学习了按组件设置 Name 和 Group 控制字段。请参阅CPACK_RPM_<component>_PACKAGE_NAME
和CPACK_RPM_<component>_PACKAGE_GROUP
。
其他¶
关于已弃用功能的警告现在默认启用。可以使用
-Wno-deprecated
或将CMAKE_WARN_DEPRECATED
变量设置为 false 来禁止显示警告。
已弃用和移除的特性¶
其他更改¶
Visual Studio 14 2015
生成器学习了将/debug:fastlink
链接器标志映射到.vcxproj
文件属性。FindGTK2
模块现在配置GTK2::sigc++
导入的目标,以便在使用 sigc++ 2.5.1 或更高版本时在其依赖项上启用 c++11。在
cmake.org
上提供的预编译 Windows 二进制文件现在是一个.msi
包,而不是安装程序可执行文件。在安装新软件包之前,可能需要手动卸载低于 3.5 的 CMake 版本。