几天前 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)。
对于像这样的编译器 MSVC
在 CMAKE__FLAGS
默认情况下,警告控制标志列表(例如“ / W3”)将停止。
在此新版本发布的公告中突出显示的其他改进中,我们发现以下内容:
- 添加了生成表达式'
COMPILE_LANG_AND_ID
:»为使用变量的目标文件定义编译器选项CMAKE__COMPILER_ID
yLANGUAGE
对于每个代码文件 - 生成器表达式
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
添加将值与列表匹配的支持,逗号分隔的项目 - 该变量已添加
CMAKE_FIND_PACKAGE_PREFER_CONFIG
,其中即使搜索模块可用,对find_package()的调用也会首先查找程序包配置文件 - 对于接口库,添加了对设置属性的支持
PUBLIC_HEADER y PRIVATE_HEADER
,其头可以通过安装命令(TARGETS)传递参数来配置PUBLIC_HEADER
yPRIVATE_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
.
如果您想了解更多信息,可以咨询 以下链接。