Visual Studio Code CMake Tools Extension 1.16 Update: New CMake Tools Sidebar and CMake Debugging options

Visual Studio Code CMake Tools Extension 1.16 Update: New CMake Tools Sidebar and CMake Debugging options

Sinem Akinci

The November release of the CMake Tools extension in VS Code is now available. With this release, we have two major new updates to the extension: 

  1. A new, customizable CMake Tools status bar and side bar for your presets and CMake actions 
  2. Script mode debugging support for the CMake Debugger 

The full list of updates can be seen in our change log. This release features 10 contributions from the open-source community. Thank you all for your continued support! 

Release Schedule Updates

Starting with this November release, CMake Tools will now release every 3 months. You can learn more about our release schedules on our release schedule wiki. 

Updates to the default CMake Tools UI

Starting in this 1.16 release, the default CMake Tools status bar will only have commonly-used actions like Build, Debug, and Run to de-clutter the status bar by default. All options for configuring your project through CMake presets or kits/variants will be found in the CMake Tools side bar under their respective node. There are new items for Deleting Cache and Reconfiguring and accessing CMake settings at the top of the Project Status view. 

New CMake Tools Sidebar

The CMake Tools sidebar in VS Code has all the CMake specific options hosted

Under each respective node, you will be able to view and toggle your active CMake presets and targets and perform Configure, Build, Test, Debug, and Launch actions on your project configurations. This will provide a one-stop location to view and edit all your CMake configurations by default. 

New Simplified CMake Status Bar Items

The new CMake status bar only has Build, Debug, and Run options by default

The previous status bar displayed a plethora of CMake configuration options, but with the new default, you will have access to only the commonly-used CMake actions in the status bar in order to clean up space in the view by default. Then, you can expand the CMake sidebar for your configuration needs.

This view can be customized to suit your needs, so you can pull whatever relevant items you want to the status bar and configure the amount of space each command takes up.

If you have any other feedback on this new experience, please comment on our open GitHub issue.

Added script mode for the CMake Debugger

We have now added support for users to use the CMake debugger to debug externally launched CMake processes or any generic CMake script. To do so, please add cmakeDebugType to your launch.json  configurations to specify whether you are debugging with the three available modes: configure, external, and script.

Example launch.json with CMake debug types
{
       “configurations”: [
           {
                “type”: “cmake”,
                “request”: “launch”,
                “name”: “Debug CMake script”,
                “cmakeDebugType”: “script”,
                “scriptPath” “${workspaceFolder}/anyScript.cmake
          },
          {
                “type”: “cmake”,
                “request”: “launch”,
                “name”: “Debug externally launched CMake processes”,
                “cmakeDebugType”: “external”
                “pipeName”: “”
          }
      ]
}

To learn more about the supported CMake debug variables in your launch.json, please see our CMake debug documentation.

You can also debug vcpkg portfiles using the CMake Debugger in the new script mode. source cross-platform library manager that uses portfiles to know how to acquire, build, and install libraries. Debugging portfiles can be helpful whenever you are adding a new library of your own to the vcpkg catalog. To learn more, please see our blog post on debugging vcpkg portfiles.

What’s next?

For our next release of CMake Tools, we are planning to incorporate CMake Tasks into the CMake side bar and overall integrate better with the Cpp Tools extension for actions like . If you would like to add any feedback for this, please comment on our open issue for the side bar and our open issue for integrating with Run/Debug.

Additionally, we will be working to add CMakePresets v6 support to the extension, so that you can use Kitware’s new Workflow and Package presets.

Let our team know what else you would like to see from us by adding an issue to our repo or upvoting any existing issues with a thumbs up.

What do you think?

Download the CMake Tools extension for Visual Studio Code and let us know what you think. We would love to see what you contribute to our repo and we are active on reviews and collaboration. Comment below or reach us via email at visualcpp@microsoft.com or via Twitter at @VisualC.