Fix #4484: compileFile with presets #4681
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change addresses item #[[put issue number here to generate a link]]
This changes visible behavior
cmake.compileFilecould not find compilation information when using presets unlessCMAKE_EXPORT_COMPILE_COMMANDSwas explicitly set. This causes single-file compilation to fail despite a successful configure.The following changes are proposed:
-DCMAKE_EXPORT_COMPILE_COMMANDSwhen neither the preset cache variables nor existing args define it, mirroring kit behavior.The purpose of this change
Restore single-file compilation with presets by ensuring compile_commands.json is exported when presets do not opt in explicitly.
Other Notes/Information
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
2wrvsblobprodwus2180.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)40vvsblobprodwus2135.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)b15vsblobprodwus2164.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)b53vsblobprodwus2154.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)d94vsblobprodwus2119.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)k4pvsblobprodwus2140.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)n6wvsblobprodwus2123.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)p2tvsblobprodwus2189.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)v41vsblobprodwus2175.vsblob.vsassets.io/usr/local/bin/node node /usr/local/bin/yarn install(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[Bug] Unable to compile single file with cmake.compileFile command</issue_title>
<issue_description>### Brief Issue Summary
Expected: compiles single file
Actual: Error popup with "Unable to find compilation information for this file"
CMake Tools Diagnostics
{ "os": "win32", "vscodeVersion": "1.100.3", "cmtVersion": "1.20.53", "configurations": [ { "folder": "d:\\workspace\\mdes1", "cmakeVersion": "4.0.2", "configured": true, "generator": "Ninja", "usesPresets": true, "compilers": { "C": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe", "CXX": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe" } } ], "cpptoolsIntegration": { "isReady": true, "hasCodeModel": true, "activeBuildType": "RelWithDebInfo", "buildTypesSeen": [ "RelWithDebInfo" ], "requests": [], "responses": [], "partialMatches": [], "targetCount": 802, "executablesCount": 186, "librariesCount": 609, "targets": [] }, "settings": [ { "communicationMode": "automatic", "useCMakePresets": "auto", "configureOnOpen": true } ] }Debug Log
Additional Information
No response</issue_description>
<agent_instructions>You are Copilot coding agent acting as a senior maintainer/contributor for the VS Code extension repository microsoft/vscode-cmake-tools.
You are deeply familiar with CMake, CMake Presets, CTest, kit/toolchain selection, VS Code extension APIs, and the architecture of this repo (TypeScript-heavy).
Your job is to resolve the GitHub issue provided below safely and in a maintainable way, matching existing patterns and UX.
SOURCE OF TRUTH
[Bug] Unable to compile single file with cmake.compileFile command #4484 - Bug [Bug] Unable to compile single file with cmake.compileFile command #4484
NON-NEGOTIABLE PROCESS
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.