CMake 3.17.0 构建系统发布

由...所提交 发布跨平台开放构建脚本生成器 CMake的3.17,它作为 Autotools 的替代品,用于 KDE、LLVM/Clang、MySQL、MariaDB、ReactOS 和 Blender 等项目。 CMake 代码是用 C++ 编写的,并在 BSD 许可证下分发。

CMake 因提供简单的脚本语言、通过模块扩展功能的方法、最少数量的依赖项(不绑定到 M4、Perl 或 Python)、缓存支持、交叉编译工具的存在、对生成构建的支持而闻名。用于各种构建系统和编译器的文件,用于定义测试脚本和构建包的 ctest 和 cpack 实用程序,用于交互式设置构建参数的 cmake-gui 实用程序。

改进:

  • 添加了基于 Ninja 工具包的新汇编脚本生成器 - “Ninja Multi-Config”,它与旧生成器的不同之处在于能够同时处理多个汇编配置。
  • 在 Visual Studio 的汇编脚本生成器中 出现 能够定义与每个配置关联的源文件(每个配置源)。
  • 设置 CUDA 元参数(“cuda_std_03”、“cuda_std_14”等)的功能已添加到设置编译器参数(编译功能)的工具中。
  • 添加了变量“CMAKE_CUDA_RUNTIME_LIBRARY”和“CUDA_RUNTIME_LIBRARY”以在使用 CUDA 时选择运行时库的类型。
  • 添加了“FindCUDAToolkit”模块,无需启用 CUDA 语言即可确定系统上可用的 CUDA 工具包。
  • 向 cmake 添加了“--debug-find”命令,以便在执行搜索操作时输出额外的可读诊断信息。 出于类似目的,添加了 CMAKE_FIND_DEBUG_MODE 变量。
  • 在“FindCURL”模块中添加了对使用 cmake 生成的配置文件“CURLConfig.cmake”搜索 CURL 工具的支持。 要禁用此行为,提供了 CURL_NO_CURL_CMAKE 变量。
  • FindPython 模块添加了在使用“conda”管理的虚拟环境中搜索 Python 组件的功能。
  • ctest 实用程序添加了“--no-tests=[error|ignore]”选项来定义没有测试情况下的行为,并添加了“--repeat”来设置重新运行测试的条件(直到通过,超时后)。
  • 汇编目标属性 INTERFACE_LINK_OPTIONS、INTERFACE_LINK_DIRECTORIES 和 INTERFACE_LINK_DEPENDS 现在在静态汇编库的内部依赖项之间传输。
  • 使用 MinGW 工具包时,默认情况下禁用使用 find_library 命令搜索 DLL 文件(相反,默认尝试导入“.dll.a”库)。
  • 现在,在 Ninja 生成器中选择 ninja 实用程序的逻辑不依赖于可执行文件的名称 - 使用通过 PATH 环境变量定义的路径中找到的第一个 ninja-build、ninja 或 samu 实用程序。
  • 向 cmake 添加了“-E rm”命令,可用于删除文件和目录,而不是单独的“-E remove”和“-E remove_directory”命令。

来源: opennet.ru

添加评论