新的 CMake 3.15 脚本生成器更新已经发布

cmake

几天前 CMake 3.15跨平台开源脚本生成器发布 它可以替代Autotools,并在KDE,LLVM / Clang,MySQL,MariaDB,ReactOS和Blender等项目中使用。

CMake是一种多平台代码生成或自动化工具。 该名称是“ cross platform make”(make跨平台,在名称中使用“ make”的缩写)的缩写。,CMake是一个单独的套件,并且比常见的make系统更高级别 Unix,类似于自动工具。

关于CMake

CMake的 以提供一种简单的脚本语言而著称, 跨模块扩展功能的工具,最少数量的依赖项(不绑定到M4,Perl或Python),缓存支持,可用于交叉编译的工具,支持为广泛的编译器系统和编译器生成汇编文件的工具。

ctest和cpack实用程序用于定义测试方案和程序包创建,而cmake-gui实用程序用于交互式配置构建参数。

CMake用于使用简单且独立的配置文件来控制软件的编译过程 平台。 Cmake生成可在所需开发环境中使用的本机makefile和工作区。

与Unix GNU构建系统相比,它的过程由配置文件控制(对于CMake,称为CMakeLists.txt)。

与GNU构建系统不同,后者 仅限于Unix平台,CMake支持为各种操作系统生成文件,这有助于维护并消除了每个平台具有多组文件的需要。

通过在每个目录(包括子目录)中创建一个或多个CMakeLists.txt文件来控制构建过程。

CMake代码是用C ++编写的,并根据BSD许可证进行分发。

CMake 3.15主要新功能

这个新版本 最初的Swift语言支持开始出现 由Apple开发的Ninja Toolkit程序集脚本生成器已添加。

除此之外, 还提供了对Clang编译器选项的支持 适用于使用ABI MSVC构建的Windows,但使用GNU样式的命令行选项。

开发人员强调变量 CMAKE_MSVC_RUNTIME_LIBRARY y MSVC_RUNTIME_LIBRARY 添加以选择编译器使用的运行时库 ABI MSVC (MS Visual Studio)。

对于像这样的编译器 MSVCCMAKE__FLAGS默认情况下,警告控制标志列表(例如“ / W3”)将停止。

在此新版本发布的公告中突出显示的其他改进中,我们发现以下内容:

  • 添加了生成表达式'COMPILE_LANG_AND_ID:»为使用变量的目标文件定义编译器选项 CMAKE__COMPILER_ID y LANGUAGE 对于每个代码文件
  • 生成器表达式 C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID y PLATFORM_ID 添加将值与列表匹配的支持,逗号分隔的项目
  • 该变量已添加 CMAKE_FIND_PACKAGE_PREFER_CONFIG,其中即使搜索模块可用,对find_package()的调用也会首先查找程序包配置文件
  • 对于接口库,添加了对设置属性的支持 PUBLIC_HEADER y PRIVATE_HEADER,其头可以通过安装命令(TARGETS)传递参数来配置 PUBLIC_HEADER y PRIVATE_HEADER
  • 该变量已添加 CMAKE_VS_JUST_MY_CODE_DEBUGGING 和目标属性 VS_JUST_MY_CODE_DEBUGGING 使用MSVC cl 19.05和更高版本进行编译时,在Visual Studio调试器中启用“仅我的代码”模式。
  • FindBoost模块已被重新设计,现在在存在其他搜索模块的情况下,可以在配置和模块模式下更全面地工作
  • 在消息()命令中添加了对NOTICE,VERBOSE,DEBUG和TRACE类型的支持
  • 现在,“ export(PACKAGE)”命令将不执行任何操作,直到通过变量将其显式启用为止。 CMAKE_EXPORT_PACKAGE_REGISTRY.

如果您想了解更多信息,可以咨询 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。