CLion 2017.1 EAP: first steps to ASM and MSVC

Posted on by

Hi,

A new CLion 2017.1 EAP (build 171.3566.4) is now available for download. You will get a notification about a patch-update in case you are using the previous EAP build (171.3224.8).

This build includes a lot of preliminary work for the upcoming big changes: disassembly view for debugger and Microsoft C++ compiler support. While these features are not quite ready yet, this EAP build introduces important changes. Your help at this stage is highly appreciated, so please check the build and submit any issue to our tracker.



Download CLion 2017.1 EAP



Assembly language

Starting with this build, CLion’s editor can highlight code written in assembly language:



The files are detected by the .s and .asm extensions (configured for you in Settings | Editor | File Types | Assembly Language). This works with a few limitations, however:

Only AT&T dialect is supported

Assembler with preprocessor is not supported

This work is the first step towards a disassembly view in debugger, which is going to come shortly to CLion EAPs.



MSVC support

Before we go through the changes, here are the two main reasons to introduce MSVC support in CLion:

MinGW and Cygwin are often difficult to use and configure

Cross-platform projects often use MSVC under Windows as a compiler

Saying this, we’d like to emphasize that our goal is not to provide support for VS projects, but to make it possible to use MSVC with CMake in CLion.

What is supported

Since MSVC support is still experimental, it’s not enabled by default. To turn it on, use Registry (in Find Action dialog ( Shift+Ctrl+A on Linux/Windows, ⇧⌘A on macOS) type Registry; open Registry, type clion.enable.msvc and turn on the setting).

If you have Visual Studio 2013, 2015 or 2017 installed, you can now configure CLion to use MSVC compiler:

In Settings | Build, Execution, Deployment | Toolchains, select ‘Visual Studio home’:



In Settings | Build, Execution, Deployment | CMake, configure the architecture (x86, amd64, x86_arm, amd64_arm, etc.), platform (empty by default, store or uwp) and version (empty by default or Windows SDK name). Under the hood, CLion calls the script to configure the environment to build the project for the selected architecture and passes these parameters to it.



Now you can build your project with MSVC. Note that CLion will run CMake with the NMake generator in this case.

What is not yet there

There are still some things that are under development for now. We hope to finish them before releasing CLion 2017.1, but if not, development will continue for the 2017.2 EAP.

Auto-detect MSVC installed on user’s machine – done in the next EAP

PCH support (works in CLion 2017.1 EAP for non-MSVC cases)

There is a known issue with encodings and localized output

Easier navigation through compiler errors (CPP-7158) – done in the next EAP

The following will definitely not come to 2017.1, but will be worked on for the 2017.2 EAP:

Specific Microsoft C++ language extensions (CPP-8675)

Note that the debugger is currently not in the roadmap (CPP-8677). We are still considering the possible workarounds, but haven’t reached a decision at this point.

Find some improvements to MSVC support in the next EAP build.

Find in Path popup

Find in Path lets you run a text search across the whole project or any selected scope. Now, you can get it in a popup window instead of the usual modal dialog:



That’s it! The full release notes are available here.

The CLion Team

JetBrains

The Drive to Develop