CLion’s issue tracker has dozens of important and interesting feature suggestions to implement. With limited resources, we are always having to prioritize the features we include with the direction we have in mind for the product’s evolution. 3-digit issues with over 800 supportive votes – these are the kinds of requests we can’t leave out! Can you guess the one we’re working on for v2018.3? It is all about remote projects support!
Initial remote projects support – what’s that?
We’ve started with a particular set-up, though we do plan to cover and come to up with more cases in the future. So we are calling the current support state – initial. What exactly was implemented then?
- Local client machine: Unix-like (macOS, Linux)
- Remote host: Linux
- Sources location: originally on the local host, CLion will synchronize to the remote machine for you.
- Project model: only CMake projects
rsync
is required to be installed on a remote host
We know there are many other cases for remote development and we are planning to extend our support for it in the future. Just sit tight and stay tuned!
How to configure a remote project in CLion?
It is much easier than you imagine! Just follow these steps.
- First of all, go to Settings/Preferences | Build, Execution, Deployment | Toolchains:
- Create a new toolchain (we call it Remote in our sample)
- Check the Remote Host option
- Configure the credentials to access the remote host:
Image may be NSFW.
Clik here to view. - Set paths to the CMake executable and debugger on the remote host (it has to be done manually for now, while the default /usr/bin/cmake and /usr/bin/gdb are set for you)
Now, if the remote host is accessible by ssh with the given address, port, username and password, the toolchain check will finish successfully and the toolchain will be available for use in CLion:
Image may be NSFW.
Clik here to view. - Now you need to connect a CMake profile (the one that currently exists, or a newer one) to the newly added remote toolchain. Do this under Settings/Preferences | Build, Execution, Deployment | CMake:
Image may be NSFW.
Clik here to view.
Later in this blog post, we’ll see how we can skip this step by simply making the remote toolchain the default one.
After applying these changes, CLion will reload the CMake on this project and you’ll then be ready to start working remotely with your project in CLion:
Image may be NSFW.
Clik here to view.
Remote development – what can I do?
Now you have a remote toolchain configured and a CMake profile that uses it. Using then our Debug-Remote as an example. You can now:
- run your app
- debug your app
- run tests
- debug tests
All completely remotely from the instance of CLion on your local machine. And it’s really then as easy as just selecting a proper CMake profile in the build type switcher:
Image may be NSFW.
Clik here to view.
The same goes for tests:
Image may be NSFW.
Clik here to view.
We hope to enable Valgrind and Google Sanitizers in the remote mode soon as well.
What’s going on in CLion under the hood?
Let me now briefly explain what CLion actually does when the described ‘remote configuration’ operations are performed. If you are not interested in the inner mechanics, then feel free to simply skip this part.
During the first step the connection entity is created, you can review the settings under Settings/Preferences | Build, Execution, Deployment | Deployment:
Image may be NSFW.
Clik here to view.
Mappings tab settings, the deployment path, in particular, is configured automatically by CLion and has the path to the remote host where CLion synchronizes your project code:
Image may be NSFW.
Clik here to view.
The synchronization process is displayed in the File Transfer tool window (View | Tool Windows | File Transfer):
Image may be NSFW.
Clik here to view.
Apart from synchronizing the local files to the remote host, CLion also grabs header search paths with all the content to the local host, so it can resolve your code correctly. This means that the standard library headers, for example, are taken from your remote machine, but you can navigate to them as you would to the local files with CLion’s editor.
Stay fully remote all the time with ease
To end this introduction into this awesome new feature, we’d like to share with you a very simple way to use CLion in this remote mode for all your projects, existing and new.
Go to Settings/Preferences | Build, Execution, Deployment | Toolchains and make your remote toolchain a default one by simply moving it to the top of the toolchains list:
Image may be NSFW.
Clik here to view.
Now, this remote toolchain will be used automatically for all the projects you open in CLion. For example, when you checkout a new project from Git:
Image may be NSFW.
Clik here to view.
There are a few known issues already, they are linked to the parent ticket here. For example, a potential performance issue when too many remote toolchains are created.
That’s it! Give this CLion remote development feature a try and let us know what you think!
Your CLion Team
JetBrains
The Drive to Develop