# Update on the new C++ plugins

DevFeed: [Update on the new C++ plugins](<https://devfeed.tech/articles/update-on-the-new-c-plugins-24702.md>)

Original publisher: [Read original article](<https://blog.gradle.org/update-on-the-new-cpp-plugins>)

Author: Daniel Lacasse

Published: 2019-06-04T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [x86](<https://devfeed.tech/topics/x86.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [build](<https://devfeed.tech/tags/build.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [update](<https://devfeed.tech/tags/update.md>), [windows](<https://devfeed.tech/tags/windows.md>), [x86](<https://devfeed.tech/tags/x86.md>)

## AI overview

This update describes progress on Gradle's new C++ plugins, including starter templates for C++ applications and libraries, target-machine modeling for operating systems and architectures, source dependencies, expanded documentation, and improved IDE support.

## Source excerpt

As the new C++ plugins are getting more attention from early adopters, we want to update everyone on their progress since our previous Introducing the new C++ plugins post. The last few months have seen several new features, new and expanded documentation, and improvements in IDE support. If you'd like to provide feedback, please get in touch with us. New Features Since the last blog post, we introduced three major new features: starter templates for C++ projects, target machine modeling and source dependencies. Starter templates for C++ projects Starting a new C++ project is now easier than ever. Thanks to C++ starter templates for the init task added by the Build Init Plugin, you can initialize a C++ Application or C++ Library. Here's an example of initializing a C++ application using the Kotlin DSL with the Build Init Plugin: Operating System and Architecture Support Native projects can now also configure the operating system and architecture (a.k.a target machines) on C++ components. Each component script block (e.g. application, library, unitTest) can configure the targetMachines property. The configured target machines will participate in the build variant for the machine compatible with the build host. For example, the following configuration of targetMachines on a Windows machines results in dedicated task for both x86 and x86-64 architectures. plugins { id "cpp-application" } application { targetMachines = [machines.windows.x86, machines.windows.x86_64] } On a Windows machine, a variant of all the tasks will be created for both x86 and x86-64 architectures. As shown on the screencast below, the assemble task compiles the debug x86-64 variant, also known as the development binary. The other variants {debug, x86}, {release, x86}, and {release, x86-64} are buildable via the linkDebugX86, linkReleaseX86, and linkReleaseX86-64 tasks respectively. On other operating systems, Gradle won't build anything since no target machine is compatible with the build host. It