新 C++ 插件更新
简介
随着新的 C++ 插件越来越受到早期采用者的关注,我们希望向大家更新自我们之前的新 C++ 插件介绍博文发布以来的进展。
在过去的几个月中,我们看到了几个新特性、新的和扩展的文档以及 IDE 支持方面的改进。
如果您想提供反馈,请与我们联系。
新特性 #
自上一篇博文发布以来,我们引入了三个主要的新特性:C++ 项目的入门模板、目标机器建模和源代码依赖。
C++ 项目的入门模板 #
现在,启动一个新的 C++ 项目比以往任何时候都更容易。
感谢 init
任务(由 Build Init Plugin 添加)的 C++ 入门模板,您可以初始化一个 C++ 应用程序或 C++ 库。这是一个使用 Kotlin DSL 和 Build Init Plugin 初始化 C++ 应用程序的示例
操作系统和架构支持 #
现在,原生项目还可以在 C++ 组件上配置操作系统和架构(也称为目标机器)。
每个组件脚本块(例如 application、library、unitTest)都可以配置 targetMachines
属性。配置的目标机器将参与与构建主机兼容的机器的构建变体。例如,在 Windows 机器上对 targetMachines
进行以下配置将为 x86 和 x86-64 架构生成专用任务。
plugins {
id "cpp-application"
}
application {
targetMachines = [machines.windows.x86, machines.windows.x86_64]
}
在 Windows 机器上,所有任务的变体都将为 x86 和 x86-64 架构创建。如下面的截屏视频所示,assemble
任务编译 debug x86-64 变体,也称为开发二进制文件。
其他变体 {debug, x86}
、{release, x86}
和 {release, x86-64}
可以分别通过 linkDebugX86
、linkReleaseX86
和 linkReleaseX86-64
任务构建。
在其他操作系统上,Gradle 不会构建任何内容,因为没有目标机器与构建主机兼容。值得注意的是,之前提到的任务都不会被创建,因为这些变体是不可构建的。相反,调用 assemble 任务只会打印一条信息丰富的消息,如下面的截屏视频所示。
源代码依赖 #
对源代码依赖的支持直到最近才是一个未宣布的特性。您可以在介绍源代码依赖博文中阅读所有相关信息。
简而言之,源代码依赖允许 Gradle 直接从源代码中使用其他项目作为依赖项。对于 C++ 开发人员来说,从源代码构建依赖项是一种常见的做法。Gradle 负责构建消费者之前构建源代码所需的所有连接。
如果源代码依赖构建是 Gradle 构建,则体验将类似于复合包含构建。另一方面,如果源代码依赖由另一个构建系统(例如 CMake)构建,则 Gradle 可以注入配置代码以执行正确的构建命令并将工件映射到 Gradle 构建中。
文档 #
在通往 Gradle 5.5 的道路上,我们发布了更多示例,演示了使用 C++ 插件已经可以实现的功能。
其中一些示例展示了有趣的用例,例如与 CMake 集成,以及如何自动从供应商网站(例如 Clang)下载和使用工具链。
在 Gradle 5.5 中,我们发布了所有新的 C++ 文档。我们建议阅读构建 C++ 项目和测试 C++ 项目章节以开始使用。
我们也很高兴推出每个原生插件的参考章节,以及Visual Studio 和 Xcode 插件的参考章节。
IDE 支持 #
Visual Studio 插件支持为使用新的 C++ 插件的项目生成解决方案文件。
JetBrains 在其著名的从 IntelliJ 导入的原生 Gradle 的基础上构建,并发布了支持直接在 Clion 中使用 Tooling API 打开 Gradle 原生项目。
该体验正如用户所期望的那样。您可以在编写代码时进行构建、调试和享受代码完成
新的 C++ 插件还支持使用 Xcode 进行 IDE 开发。
提供反馈 #
这些插件仍在开发中,并且存在一些限制。
例如,调试性等模型元素尚不允许任何配置。您需要求助于使用编译器/链接器标志。
我们将继续改进这些插件,使其稳定,并最终弃用软件模型插件。
请试用这些插件,并告诉我们您的想法。入门的最简单方法是克隆原生示例仓库并按照说明进行操作。我们的示例使用Gradle 每夜构建版,因此您将看到最新的和最出色的开发成果。
我们很想听听您认为哪些方面做得好,哪些方面令人困惑,以及缺少哪些方面会阻止您使用 Gradle 构建 C++ 软件。您还可以在Gradle 论坛上留下反馈,或在Gradle native GitHub 仓库上提出问题。