CMake 3.16 构建系统发布

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

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

改进:

  • 添加了对 Objective C (“OBJC”) 和 Objective 语言的支持
    C++(“OBJCXX”),可以通过project()和enable_language()命令启用,之后“.m”“.mm”文件中的代码将编译为Objective C和Objective C++代码,而不是作为C++,和以前一样;

  • 添加了对 Solaris 平台上的 Clang 编译器的支持;
  • 添加了新的命令行选项:“cmake -E true|false”以打印返回码 0 和 1; “cmake --trace-redirect=” 将跟踪信息重定向到文件
    “标准错误”; “cmake --loglevel”命令已重命名为“--log-level”,以使其与其他命令的名称保持一致;

  • 添加了“target_precompile_headers()”命令来列出预编译期间使用的头文件列表(减少构建时间);
  • 添加了“UNITY_BUILD”属性,该属性激活批处理模式来处理生成器中的源文件以加快构建速度;
  • 添加了命令“find_file()”、“find_library()”、“find_path()”、
    “find_package()”和“find_program()”根据定义各种文件类别的搜索路径的变量来搜索文件、库、路径、包和可执行文件。
    变量“CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH”、“CMAKE_FIND_USE_CMAKE_PATH”、“CMAKE_FIND_USE_CMAKE_SYSTEM_PATH”、“CMAKE_FIND_USE_PACKAGE_ROOT_PATH”、“CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH”和“CMAKE_FIND_USE_PACKAGE_REGIST”用于控制基本搜索路径RY”;

  • 在“file()”命令中添加了“file(GET_RUNTIME_DEPENDENCIES)”模式,该模式允许您递归检索动态链接可执行文件或库时使用的库列表。该模式取代了 GetPrecessions() 命令,该命令现已被弃用;
  • “ctest(1)”命令实现了根据每个测试所需的资源来序列化测试的能力;
  • 变量“CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY”已被弃用,应替换为“CMAKE_FIND_USE_PACKAGE_REGISTRY”;
  • 改进了 AIX 平台支持。使用“ENABLE_EXPORTS”属性时,除了可执行文件之外,现在还会生成链接器的导入文件,并以“.imp”扩展名保存。在通过使用“MODULE”选项调用“add_library()”创建的插件中,可以在使用“target_link_libraries()”命令进行链接时使用此文件。默认情况下,AIX 上的运行时链接是禁用的,因为 CMake 现在提供了加载时链接所需的所有符号信息。要使用动态库或可加载模块的运行时链接,必须在链接器启动标志列表中显式指定选项“-Wl,-G”,通过变量“CMAKE_SHARED_LINKER_FLAGS”和“CMAKE_MODULE_LINKER_FLAGS”定义。

来源: opennet.ru

添加评论