{"id":35611,"date":"2025-07-21T12:10:34","date_gmt":"2025-07-21T12:10:34","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=35611"},"modified":"2025-07-17T18:38:33","modified_gmt":"2025-07-17T18:38:33","slug":"visual-studio-code-cmake-tools-extension-1-21-release-multi-root-improvements-cmake-presets-v10-and-more","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/visual-studio-code-cmake-tools-extension-1-21-release-multi-root-improvements-cmake-presets-v10-and-more\/","title":{"rendered":"Visual Studio Code CMake Tools Extension 1.21 Release: Multi-root improvements, CMake Presets v10, and more\u2026"},"content":{"rendered":"<p>We\u2019re excited to announce <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cmake-tools\">the latest 1.21 release of the CMake Tools extension<\/a> for Visual Studio Code. This update brings a host of new updates, including addressing one of our top-voted issues for <strong>multi-root improvements<\/strong> and adding <strong>CMake presets version 10 support<\/strong>. To view the full list of updates with this release, please look at our\u00a0<a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/blob\/main\/CHANGELOG.md\">CHANGELOG<\/a>.<\/p>\n<p>This release features the following ten contributions from our open-source community. Thank you for your continued support!<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4273\">Allow specifying a launch configuration which can be used when debugging tests via CTest<\/a> by <a href=\"https:\/\/github.com\/Nerixyz\">@nerixyz<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4422\">Adding a new command cmake.cacheVariable<\/a> by <a href=\"https:\/\/github.com\/malsyned\">@malsyned<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/3953\">Grouping default build targets based on CMake FOLDER property<\/a> by <a href=\"https:\/\/github.com\/itzandroidtab\">@itzandroidtab<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4340\">Add name de-mangling for C++ symbols in the Test Explorer view<\/a> by <a href=\"https:\/\/github.com\/rjaegers\">@rjaegers<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4325\">Fixes to case preservation for include paths on MacOS<\/a> by <a href=\"https:\/\/github.com\/tringenbach\">@tringenbach<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4458\">Reduce heap usage with new optimized splits for large compile commands<\/a> by <a href=\"https:\/\/github.com\/borjamunozf\">@borjamunozf<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/pull\/4321\">Remove dependency for backtrace in presence of DEF_SOURCE_LINE<\/a> by <a href=\"https:\/\/github.com\/rjaegers\">@rjaegers<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/2864\">Fix gnuld error parsing false positive on make errors, false negatives due to trailing \\r, and false parsing of new \u201cmultiple definitions\u201d error<\/a> by <a href=\"https:\/\/github.com\/0xemgy\">@0xemgy<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/4304\">Fix bug where unrelated symlinks are read as variant files<\/a> by <a href=\"https:\/\/github.com\/vitorramos\">@vitorramos<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/2855\">Fix ENOENT error at vs code startup on some circumstances<\/a> by <a href=\"https:\/\/github.com\/JDESTM\">@STMicroelectronics<\/a><\/li>\n<\/ul>\n<h3>Multi-root improvements<\/h3>\n<p>We addressed one of our <a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/1069\">top-voted customer feedback issues<\/a> to improve multi-root integration and allow users more customizability to enable\/disable certain folders in mixed-language circumstances.<\/p>\n<p>Now, we have added support for a new <code>cmake.exclude<\/code> setting that allows users to select specific folders to ignore in multi-root scenarios.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude.png\"><img decoding=\"async\" class=\"size-full wp-image-35612 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude.png\" alt=\"The CMake exclude setting ignoring test and third party libraries for Pioneer\" width=\"1072\" height=\"269\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude.png 1072w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude-300x75.png 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude-1024x257.png 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/07\/cmake-exclude-768x193.png 768w\" sizes=\"(max-width: 1072px) 100vw, 1072px\" \/><\/a><\/p>\n<p>For example, when developing with 3<sup>rd<\/sup> party packages, you can specify for the extension to ignore these at build via this new setting, improving the overall user experience for your needs.<\/p>\n<h3>CMake presets version 10 support<\/h3>\n<p>We have also added support for the latest version 10 of CMake Presets, which adds two new features to enhance clarity and visualization in your build configurations: $<strong>comment<\/strong> and <strong>graphviz<\/strong> support.<\/p>\n<p>CMake presets v10 introduces a new <code>$comment<\/code> field that allows developers to add inline documentation within their preset\u2019s definitions, making it easier to understand and distinguish between different configurations. To learn more about using formatting using $comment, you can visit <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/manual\/cmake-presets.7.html#format\">Kitware\u2019s documentation<\/a>.<\/p>\n<p>Additionally, CMake presets now supports graphviz, which allows you to visualize the dependencies between targets and external libraries in your project. By specifying a <code>graphviz<\/code> field in your CMake presets, you can enable Graphviz DOT files that can be rendered via Graphviz.<\/p>\n<h3>What do you think?<\/h3>\n<p>Download <a href=\"https:\/\/code.visualstudio.com\/Download\">Visual Studio Code<\/a> and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode.cmake-tools\">the CMake Tools extension<\/a> and let us know what you think.\u00a0We would love to see what you\u00a0contribute to our<a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\"> repo<\/a>. Please create an\u00a0<a href=\"https:\/\/github.com\/microsoft\/vscode-cmake-tools\/issues\/\">issue<\/a>\u00a0if\u00a0there\u2019s\u00a0anything\u00a0you\u2019d\u00a0like to see and upvote\/downvote any existing issues.\u00a0Comment below or reach us via email at\u00a0<a href=\"mailto:visualcpp@microsoft.com\">visualcpp@microsoft.com,<\/a>\u00a0via X at\u00a0<a href=\"https:\/\/twitter.com\/visualc\">@VisualC<\/a>., or via Bluesky at <a href=\"https:\/\/bsky.app\/profile\/msftcpp.bsky.social\">@msftcpp.bsky.social<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019re excited to announce the latest 1.21 release of the CMake Tools extension for Visual Studio Code. This update brings a host of new updates, including addressing one of our top-voted issues for multi-root improvements and adding CMake presets version 10 support. To view the full list of updates with this release, please look at [&hellip;]<\/p>\n","protected":false},"author":85413,"featured_media":35612,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,1,266,275],"tags":[],"class_list":["post-35611","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cplusplus","category-cmake","category-visual-studio-code"],"acf":[],"blog_post_summary":"<p>We\u2019re excited to announce the latest 1.21 release of the CMake Tools extension for Visual Studio Code. This update brings a host of new updates, including addressing one of our top-voted issues for multi-root improvements and adding CMake presets version 10 support. To view the full list of updates with this release, please look at [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35611","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=35611"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35611\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35612"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=35611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=35611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=35611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}