这篇文章介绍了我们正在开发的c++的一些新插件。这些插件可以构建c++库和应用程序。他们使用GCC、Clang和Visualc++/VisualStudio在macOS、Linux和Windows上工作。
插件最终将取代软件模型插件,并利用许多新特性,如丰富的依赖管理引擎、构建缓存、组合构建、细粒度并行执行、构建扫描等等。关于背景,请参阅我们的关于国家和未来的Gradle软件模型的文章。
我们欢迎您对这些插件的任何反馈。您可以在Gradle论坛上留下反馈,或者在本地GitHub存储库中提出问题。
构建应用程序
您可以在本地样本GitHub存储库中找到这篇文章的所有示例。让我们来看看构建一个简单的应用程序。
任何使用过Gradle的Java插件的人都应该熟悉构建脚本:
plugins{idcpp-application}
这个应用程序没有依赖项,而c++源文件和header位于默认位置:src/main/cpp目录。由于这是Gradle,您可以轻松地配置源位置,以匹配您的项目所拥有的任何布局,包括将所有内容放入一个目录的常见模式。
这是运行的结果。在这个例子中:
看一下这个构建的构建扫描,以了解更详细的情况。
插件自动找到编译器、链接器和其他工具来构建应用程序。结果最终安装在构建/安装目录中,准备运行。
IDE支持
Xcode目前支持c++项目。您可以运行./gradlewxcode并打开生成的工作区。今年早些时候将会增加对VisualStudio解决方案的支持,之后会逐渐增加对其他ide的支持。
这是运行的结果./gradlewxcode的示例:
这就是工作空间在Xcode中的样子:
依赖关系
这个插件使用了Gradle的依赖管理特性,就像其他插件一样,比如Java或Android插件。这意味着,例如,传递依赖关系工作得很好。
让我们在应用程序中添加一个依赖库。在这个示例中,c++库是从Maven存储库下载的。您不需要手动安装库,并且运行构建的每个人都将使用构建脚本中指定的版本,而不是在他们的机器上安装任何版本。
构建脚本定义了Maven存储库,并声明了对另一个示例c++库的依赖:
repositories{maven{//Inthissample,weusedalocalMavenrepository,//butMavenCentralorArtifactoryservercanbeused.url