Gradle is a build automation system that provides plugins to build C/C++ libraries and applications. In CLion, you can work with Gradle projects that are based on cpp-application and cpp-library plugins (for more details on C/C++ Gradle plugins, see this blog post: Introducing the new C++ plugins).
Open a Gradle project
Select build.gradle file.from the main menu and point CLion to the
In the dialog that opens, click Open as a Project.
CLion will load the project, displaying the progress and status in the Build tool window:
Adjust the project settings
By default, CLion doesn't reload your project automatically except for the cases of external changes like VCS update. You can change this behavior in the Build Tools settings.
Select one of the auto-reload options:
Any changes- project reload will be triggered on any change in the build.gradle scripts.
External changes (default) - your project will be reloaded only upon external events like VCS update. In case of other changes, you need to reload your project manually. Use one of the following options:
Click the popup that appears in the editor:
Click in the Build tool window:
Click in the Gradle tool window:
Run/Debug configurations for Gradle projects
CLion extracts run/debug configurations from the build.gradle file. You can change the extracted configurations and create new ones in the dialog.
There are two run/debug configurations available for Gradle projects, Gradle and Gradle Native Application.
Set up a Gradle configuration
In the Gradle configuration dialog, configure the following settings:
Run- specify the tasks you want to execute. Note that you can run several tasks in one Run/Debug configuration. For example,
build. You can also add Gradle command line parameters here, for example,
Gradle project- specify the location of your Gradle project. Click to select from the list of the registered Gradle projects.
Set up a Gradle Native Application configuration
In the Gradle Native Application configuration dialog:
In the Target field, select the desired target from the list:
In the Executable field, select the proper executable for your configuration.
Working with Gradle tasks
CLion lets you run Gradle tasks using several different ways such as using a toolbar in the Gradle tool window, using a run configuration, and using a context menu.
Run a Gradle task from the Gradle toolbar
In the Gradle tool window ( ), click on the toolbar.
In the Run Gradle Task dialog that opens, start entering the name of the task in the Command line field. CLion displays the list of Gradle tasks from which you can select the appropriate one:
CLion runs the selected task and displays the result in the Run tool window:
CLion also saves the task under the Run Configurations node in the Gradle window:
Use context menu to run a Gradle task
The first option is to select Run from the context menu of the desired task in the Gradle projects tool window.
If the task already has a corresponding Run/Debug configuration, you will see the Select option in the context menu. You can use this option to set the active configuration, and then run it.
If there is no corresponding configuration for the task, the context menu will contain the Create option. Choose this option to open the Run/Debug Configuration dialog and create a configuration with the selected task.
All the available Run/Debug configurations are listed under the Run configurations node. Use the Run option from the context menu to run the tasks presented under this node:
Running Gradle Native applications
For example, you can use the icon in the left gutter beside the code entry points. Click and choose the desired action from the list. If there is no existing Gradle Native configuration for the target, a new configuration will be created before the launch.
Issues and limitations
In the current initial phase of the Gradle support in CLion, there are several known problems and functionality restrictions:
CLion does not provide a project template for Gradle, so you can't create a new Gradle project via the New Project wizard.
Debugging Gradle tasks themselves is unavailable.