Skip to content

Commit c5c051f

Browse files
author
Colin Robertson
authored
Merge pull request #3566 from sfreed141/patch-3
Add section on CMake partial activation
2 parents 12dc13e + 932758f commit c5c051f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

docs/build/cmake-projects-in-visual-studio.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ When you **open a folder** containing a *`CMakeLists.txt`* file, the following t
3838

3939
- In the background, Visual Studio starts to index the source files to enable IntelliSense, browsing information, refactoring, and so on. As you work, Visual Studio monitors changes in the editor and also on disk to keep its index in sync with the sources.
4040

41+
> [!NOTE]
42+
> Starting in Visual Studio 2022 version 17.1 Preview 2, if your folder doesn't contain a root `CMakeLists.txt` you'll be prompted whether you'd like to enable CMake integration or not. For more information, see [CMake partial activation](#cmake-partial-activation).
43+
4144
Once CMake cache generation has succeeded, you can also view your projects organized logically by targets. Choose **Targets view** from the dropdown in the **Solution Explorer** toolbar:
4245

4346
![CMake targets view button.](media/cmake-targets-view.png)
@@ -144,6 +147,19 @@ Visual Studio allows you to debug a process running on a remote Linux system or
144147

145148
![A screenshot of the Attach to Process menu](media/attach-to-process.png)
146149

150+
## <a name="cmake-partial-activation"></a> CMake partial activation
151+
152+
Starting in Visual Studio 2022 version 17.1 Preview 2, CMake functionality won't be enabled automatically if your root folder doesn't contain a `CMakeLists.txt` file. Instead, a dialog will prompt you on whether you'd like to enable CMake functionality for your project. If you decline, CMake cache generation won't start and CMake configurations (from `CMakeSettings.json` or `CMakePresets.json`) won't appear in the configuration dropdown. If you accept, you'll be taken to a workspace-level configuration file, `CMakeWorkspaceSettings.json` (stored in the `.vs` directory), to specify the folders you'd like to enable CMake for. (These folders contain your root `CMakeLists.txt` files).
153+
154+
The accepted properties are:
155+
156+
| Property | Description |
157+
|--|--|
158+
| `enableCMake` | Enable Visual Studio's integration for this workspace. |
159+
| `sourceDirectory` | A string or array of strings specifying the directory or directories with `CMakeLists.txt`. Macros (such as `${workspaceRoot}`) are allowed. Relative paths are relative to the workspace root. Directories outside of the current workspace will be ignored. |
160+
161+
You can reach `CMakeWorkspaceSettings.json` through the **Project** > **CMake Workspace Settings** menu command at any time, even if CMake functionality is currently disabled.
162+
147163
## Open an existing cache
148164

149165
When you open an existing CMake cache file (*`CMakeCache.txt`*), Visual Studio doesn't try to manage your cache and build tree for you. Your custom or preferred tools have complete control over how CMake configures your project.

0 commit comments

Comments
 (0)