{"id":33113,"date":"2023-11-15T16:54:29","date_gmt":"2023-11-15T16:54:29","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=33113"},"modified":"2023-11-16T18:55:07","modified_gmt":"2023-11-16T18:55:07","slug":"visual-studio-code-cmake-tools-extension-1-16-update-new-cmake-tools-sidebar-and-cmake-debugging-options","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/visual-studio-code-cmake-tools-extension-1-16-update-new-cmake-tools-sidebar-and-cmake-debugging-options\/","title":{"rendered":"Visual Studio Code CMake Tools Extension 1.16 Update: New CMake Tools Sidebar and CMake Debugging options"},"content":{"rendered":"<p><span data-contrast=\"auto\">The <\/span><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/releases\"><span data-contrast=\"none\">November release of the CMake Tools extension<\/span><\/a><span data-contrast=\"auto\"> in VS Code is now available. With this release, we have two major new updates to the extension:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ol>\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">A new, customizable CMake Tools status bar and side bar for your presets and CMake actions<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Script mode debugging support for the CMake Debugger<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-contrast=\"auto\">The full list of updates can be seen in our <\/span><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/blob\/main\/CHANGELOG.md\"><span data-contrast=\"none\">change log<\/span><\/a><span data-contrast=\"auto\">. This release features 10 contributions from the open-source community. Thank you all for your continued support!<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h4><em>Release Schedule Updates<\/em><\/h4>\n<p><span class=\"TextRun SCXW47822392 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW47822392 BCX8\">Starting with this <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">November <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">release, <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">CMake<\/span><span class=\"NormalTextRun SCXW47822392 BCX8\"> Tools will <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">now <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">release<\/span> <span class=\"NormalTextRun SCXW47822392 BCX8\">every 3 months. You can learn more about our release schedules on <\/span><span class=\"NormalTextRun SCXW47822392 BCX8\">our<\/span> <\/span><a class=\"Hyperlink SCXW47822392 BCX8\" href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/wiki\/Release-schedule\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW47822392 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW47822392 BCX8\" data-ccp-charstyle=\"Hyperlink\">r<\/span><span class=\"NormalTextRun SCXW47822392 BCX8\" data-ccp-charstyle=\"Hyperlink\">elease schedule wiki<\/span><\/span><\/a><span class=\"TextRun SCXW47822392 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW47822392 BCX8\">.<\/span><\/span><span class=\"EOP SCXW47822392 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3>Updates to the default CMake Tools UI<\/h3>\n<p><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">Starting <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">in<\/span> <span class=\"NormalTextRun SCXW259293211 BCX8\">this <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">1.16<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> re<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">l<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">ease<\/span><span class=\"NormalTextRun CommentStart SCXW259293211 BCX8\">, the default <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">CMake<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> Tools status bar will only have <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">commonly-used<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> actions like <\/span><\/span><strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">Build<\/span><\/span><\/strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">, <\/span><\/span><strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">Debug<\/span><\/span><\/strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">, and <\/span><\/span><strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\">Run<\/span><\/span><\/strong><span class=\"TextRun SCXW259293211 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW259293211 BCX8\"> to de-clutter the status bar by default. All options for configuring your project through <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">CMake<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> presets or kits\/variants will be found in the <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">CMake<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> Tools side bar under their respective node.<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> There are <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">new items<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> for <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">Deleting Cache and Reconfiguring<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> and accessing <\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">CMake<\/span> <span class=\"NormalTextRun SCXW259293211 BCX8\">settings<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\"> at the top of the Project Status view<\/span><span class=\"NormalTextRun SCXW259293211 BCX8\">.<\/span><\/span><span class=\"EOP SCXW259293211 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h5><em>New CMake Tools Sidebar<\/em><\/h5>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-tools-sidebar.png\"><img decoding=\"async\" class=\"size-full wp-image-33114 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-tools-sidebar.png\" alt=\"The CMake Tools sidebar in VS Code has all the CMake specific options hosted\" width=\"612\" height=\"721\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-tools-sidebar.png 612w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-tools-sidebar-255x300.png 255w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/a><\/p>\n<p><span class=\"TextRun SCXW112995504 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW112995504 BCX8\">Under each <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">respective <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">node, you will be able to <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">view and toggle<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\"> your active <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">CMake<\/span> <span class=\"NormalTextRun SCXW112995504 BCX8\">presets and targets<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">and perform Configure, Build, Test, Debug, and Launch actions on <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">your project<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\"> configurations. This will <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">provide<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\"> a one-stop location to view and edit all your <\/span><span class=\"NormalTextRun SCXW112995504 BCX8\">CMake<\/span><span class=\"NormalTextRun SCXW112995504 BCX8\"> configurations by default.<\/span><\/span><span class=\"EOP SCXW112995504 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h5><em>New Simplified CMake Status Bar Items<\/em><\/h5>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar.png\"><img decoding=\"async\" class=\"size-large wp-image-33116 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar-1024x501.png\" alt=\"The new CMake status bar only has Build, Debug, and Run options by default\" width=\"640\" height=\"313\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar-1024x501.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar-300x147.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar-768x376.png 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2023\/11\/cmake-new-statusbar.png 1111w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>If you have any other feedback on this new experience, please comment on <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/3423\">our open GitHub issue<\/a>.<\/p>\n<h3>Added script mode for the CMake Debugger<\/h3>\n<p>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 <code>cmakeDebugType<\/code> to your <code>launch.json<\/code> \u00a0configurations to specify whether you are debugging with the three available modes: <code>configure<\/code>, <code>external<\/code>, and <code>script<\/code>.<\/p>\n<h5><em>Example launch.json with CMake debug types<\/em><\/h5>\n<pre>{\r\n       \u201cconfigurations\u201d: [\r\n           {\r\n                \u201ctype\u201d: \u201ccmake\u201d,\r\n                \u201crequest\u201d: \u201claunch\u201d,\r\n                \u201cname\u201d: \u201cDebug CMake script\u201d,\r\n                \u201ccmakeDebugType\u201d: \u201cscript\u201d,\r\n                \u201cscriptPath\u201d \u201c${workspaceFolder}\/anyScript.cmake\r\n          },\r\n          {\r\n                \u201ctype\u201d: \u201ccmake\u201d,\r\n                \u201crequest\u201d: \u201claunch\u201d,\r\n                \u201cname\u201d: \u201cDebug externally launched CMake processes\u201d,\r\n                \u201ccmakeDebugType\u201d: \u201cexternal\u201d\r\n                \u201cpipeName\u201d: \u201c&lt;insert-pipe-name&gt;\u201d\r\n          }\r\n      ]\r\n}<\/pre>\n<p>To learn more about the supported CMake debug variables in your launch.json, please see <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/blob\/main\/docs\/debug.md\">our CMake debug documentation<\/a>.<\/p>\n<p>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 <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/debug-vcpkg-portfiles-in-cmake-script-mode-with-visual-studio-code\/\">our blog post on debugging vcpkg portfiles<\/a>.<\/p>\n<h3>What&#8217;s next?<\/h3>\n<p>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 <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/3291\">our open issue<\/a> for the side bar and <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/3380\">our open issue for integrating with Run\/Debug<\/a>.<\/p>\n<p>Additionally, we will be working to <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/2871\">add CMakePresets v6 support<\/a> to the extension, so that you can use Kitware\u2019s new Workflow and Package presets.<\/p>\n<p>Let our team know what else you would like to see from us by <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/3291\">adding an issue to our repo<\/a> or upvoting any existing issues with a thumbs up.<\/p>\n<h3>What do you think?<\/h3>\n<p>Download the\u00a0<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cmake-tools\">CMake\u00a0Tools extension\u00a0<\/a>for Visual Studio Code and let us know what you think.\u00a0We would love to see what you contribute to our<a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\">\u00a0repo<\/a>\u00a0and we are active on reviews and collaboration. Comment below or reach us via email at\u00a0<a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com<\/a>\u00a0or via\u00a0Twitter at\u00a0<a href=\"https:\/\/twitter.com\/visualc\">@VisualC<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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:\u00a0 A new, customizable CMake Tools status bar and side bar for your presets and CMake actions\u00a0 Script mode debugging support for the CMake Debugger\u00a0 The full list of updates [&hellip;]<\/p>\n","protected":false},"author":85413,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,266,275],"tags":[],"class_list":["post-33113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","category-cmake","category-visual-studio-code"],"acf":[],"blog_post_summary":"<p>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:\u00a0 A new, customizable CMake Tools status bar and side bar for your presets and CMake actions\u00a0 Script mode debugging support for the CMake Debugger\u00a0 The full list of updates [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/33113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/85413"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=33113"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/33113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=33113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=33113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=33113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}