October 15th, 2019

Usability Improvements for CMake in Visual Studio 2019 version 16.4: Launch Target Selection and Overview Pages

Erika Sweet
Senior Product Manager

We hear your feedback, and in Visual Studio 2019 version 16.4 Preview 2 we have addressed one of our top Developer Community issues related to CMake development in Visual Studio by revamping the selection of CMake launch targets. We have also added Overview Pages for CMake to help you get started with CMake and cross-platform development. If you’re not familiar with Visual Studio’s CMake support, be sure to check our CMake Support in Visual Studio introductory page.

Launch Target Selection

In Visual Studio 2019 you can select a CMake target to run via the launch drop-down menu:

The launch drop-down menu for a large CMake project in Visual Studio.

With Visual Studio 2019 version 16.4 we have improved this experience based on your feedback. You can now select “Show/Hide Debug Targets” from the top of the drop-down menu to open the following dialog and hide seldom used debug targets from the drop-down menu:

Use the new "Show or Hide Debug Targets" dialogue to show and hide debug targets from the launch drop-down menu in Visual Studio.

For large CMake projects (like llvm), this will allow you to clean-up the launch drop-down menu dramatically and focus only on the targets you care about. You can always unhide any debug target that has been hidden from the drop-down menu. In the following example, many of the 100+ targets of llvm (listed above) have been hidden from the launch drop-down menu:

The launch drop-down menu now displays your most recently used debug targets at the top of the menu.

The launch drop-down menu also displays your most recently used debug targets at the top of the menu. This is based on feedback that many of you toggle between 2-3 debug targets at a time. In the screenshot above, “Fibonacci.exe” and “bugpoint.exe” are my most recently used debug targets.

Overview Pages for CMake

We also added Overview Pages for CMake projects to help you get started with cross-platform development. These pages are dynamic and help you install the Linux Workload, connect to a remote Linux system or the Windows Subsystem for Linux (WSL), and add a Linux or WSL configuration to your CMake project. If you are just getting started with Linux development in Visual Studio, I recommend trying our native support for WSL.

Overview Pages for CMake help you get started with Linux development in Visual Studio.

Give us your feedback!

Do you have feedback on our Linux tooling or CMake support in Visual Studio? We’d love to hear from you to help us prioritize and build the right features for you. We can be reached via the comments below, email (visualcpp@microsoft.com), and Twitter (@VisualC).

Author

Erika Sweet
Senior Product Manager

Erika works on the Visual C++ Team at Microsoft. She likes math and mystery novels. She is currently working on developer tools to support C++ cross-platform development.

4 comments

Discussion is closed. Login to edit/delete existing comments.

  • Leslie N

    The “Show/Hide Debug Targets” box was a good move!
    I’m looking forward to the “Overview Pages” feature, too.

  • Stephane Lajoie

    There's one thing missing from the UI when working with a CMake project: there is no way to switch the active configuration for people who don't use toolbars (to save screen space).

    It seems to be a general rule of Visual Studio that everything found on a toolbar also has an equivalent option in a drop-down menu or dialog somewhere. I couldn't find a way to switch to between debug/release configuration without temporarily showing the Standard...

    Read more
  • Hristo Hristov

    Whenever I select "Debug and Launch settings" a new configuration gets added to launch.vs.json. Sometimes I just want to edit an existing one and not add a new one. Will this be fixed someday?
    Also there doesn't seem to be and easy option to create launch configuration for the different CMake target configurations as defined in CMakeSettings.json. I'd like to have a specific launch.vs.json configuration for each CMake configuration. If that's possible it is not...

    Read more
  • jasper mitchel

    Thank you for the consistent improvement to your CMake support. The ability to hide targets sounds very useful in large projects.

    Unfortunately, I want to raise again that custom test adapters are unusable with the built-in CMake. The only option is to manually build the CMake project, which loses out on a lot of features.