发布 Qbs 1.21 构建工具并开始 Qt 6.3 测试

Qbs 1.21 构建工具版本已发布。 这是自 Qt 公司退出该项目开发以来的第八个版本,由有兴趣继续开发 Qbs 的社区准备。 要构建 Qbs,依赖项中需要 Qt,尽管 Qbs 本身旨在组织任何项目的组装。 Qbs 使用 QML 语言的简化版本来定义项目构建脚本,它允许您定义相当灵活的构建规则,可以连接外部模块、使用 JavaScript 函数以及创建自定义构建规则。

Qbs 中使用的脚本语言适用于通过 IDE 自动生成和解析构建脚本。 此外,Qbs 不生成 makefile,并且它自己在没有 make 实用程序等中介的情况下控制编译器和链接器的启动,根据所有依赖项的详细图表优化构建过程。 项目中结构和依赖关系的初始数据的存在使您可以有效地并行执行多个线程中的操作。 对于包含大量文件和子目录的大型项目,使用 Qbs 的重建性能可以比 make 好几倍——重建几乎是瞬时的,不会让开发人员花费时间等待。

回想一下,2018 年,Qt 公司决定停止开发 Qbs。 Qbs 是作为 qmake 的替代品而开发的,但从长远来看,最终决定使用 CMake 作为 Qt 的主要构建系统。 Qbs 的开发现在作为一个独立项目继续进行,得到社区力量和感兴趣的开发人员的支持。 对于开发,继续使用 Qt 公司的基础设施。

Qbs 1.21 的主要创新:

  • 模块提供者(模块生成器)的机制已被重新设计。 对于 Qt 和 Boost 等框架,现在可以使用多个提供程序,使用新的 qbsModuleProviders 属性指定要运行的提供程序,并指定选择不同提供程序生成的模块的优先级。 例如,您可以指定两个提供程序“Qt”和“qbspkgconfig”,其中第一个提供程序将尝试使用用户的 Qt 安装(通过 qmake 搜索),如果未找到此类安装,则第二个提供程序将尝试使用系统提供的 Qt(通过调用 pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • 添加了“qbspkgconfig”提供程序,它取代了“后备”模块提供程序,如果请求的模块不是由其他提供程序生成的,则该提供程序会尝试使用 pkg-config 生成模块。 与“fallback”不同,“qbspkgconfig”不是调用 pkg-config 实用程序,而是使用内置 C++ 库直接读取“.pc”文件,这可以加快工作速度并提供有关包依赖项的附加信息,而这些信息在调用 pkg-config 实用程序时不可用。 pkg-config 实用程序。
  • 添加了对 C++23 规范的支持,该规范定义了未来的 C++ 标准。
  • 添加了对 GCC 工具包的 Elbrus E2K 架构的支持。
  • 对于 Android 平台,添加了 Android.ndk.buildId 属性来覆盖“--build-id”链接器标志的默认值。
  • capnproto 和 protobuf 模块实现了使用 qbspkgconfig 提供程序提供的运行时的能力。
  • 解决了 FreeBSD 上源文件中的更改跟踪问题,因为在估计文件修改时间时会丢失毫秒数。
  • 添加了 ConanfileProbe.verbose 属性,以便更轻松地调试使用 Conan 包管理器的项目。

另外,我们可以注意到Qt 6.3框架开始进行alpha测试,它实现了一个新模块“Qt Language Server”,支持Language Server和JsonRpc 2.0协议,大部分新功能已添加到Qt Core中模块,并且 QML 类型 MessageDialog 已在 Qt Quick Dialogs 模块中实现。为了使用平台提供的对话框,Qt Wayland Compositor 模块中添加了复合 Qt Shell 服务器和用于创建您自己的自定义 shell 扩展的 API 。

Qt QML 模块提供了 qmltc(QML 类型编译器)编译器的实现,它允许您将 QML 对象结构编译为 C++ 中的类。 对于Qt 6.3的商业用户,Qt Quick Compiler产品的测试已经开始,除了上述的QML Type Compiler之外,还包括QML Script Compiler,它允许您将QML函数和表达式编译成C++代码。 值得注意的是,使用Qt Quick Compiler将使基于QML的程序的性能更接近原生程序;特别是在编译扩展时,与使用解释版本相比,启动和执行时间减少了大约30% 。

来源: opennet.ru

添加评论