microsoft / microsoft/vscode-cmake-tools
[FR] `Install` button -> to perform (configure, build and install actions) automatically
- Dominant language
- TypeScript
- Stars
- 1.7k
- Forks
- 546
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 32
Description
### Brief Issue Summary
Normally when building a project all we need is to create a CMake Configure preset and hit the `Build` button in the Status bar and we get the result. But sometimes it is necessary to also install the project to a location to get a meaningful running build.
In the case of the `Libc++` library since recently to get to a proper result when using it with Visual Studio Code (this is a one possible use case) it is necessary to create a CMake configure preset, set the install directory (e.g. "installDir"), setup an install task:
```json
{
"version": "2.0.0",
"tasks": [
{
"type": "cmake",
"label": "CMake: install",
"command": "install",
"preset": "${command:cmake.activeBuildPresetName}",
"problemMatcher": [],
"detail": "CMake template install task"
}
]
}
```
execute that install task to get the built right where it is needed.
Can we have this automated? Next to the `Build` button in the status bar - an `Install` button that performs the build, and install tasks automatically without the manual setup? This seems a common enough use case so it can be a VS CMake Tools feature, can it be done?
I'd consider this an extension to this already implemented feature: https://github.com/microsoft/vscode-cmake-tools/issues/532
Contributor guide
Research direction
Start by tracing the existing status-bar Build action and the CMake install-task handling, then review the related feature in issue #532. Done means an Install button can automatically perform the build and install flow using the active CMake preset, without manual task setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, typescript
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100