| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit f85913fa08 (VS: Add support for enumerating VS instances
with vswhere, 2022-04-11, v3.24.0-rc1~282^2), if the COM lookup does not
report any VS instances, we fall back to finding vswhere. However, the
`getenv` call returns nullptr if the `ProgramFiles(x86)` environment
variable is not set. Update the logic to tolerate not-set environment
variables. Also check the plain `ProgramFiles` environment variable.
Fixes: #24090
|
| |
|
|
|
|
|
| |
Move all VS instance enumeration code using COM interface to
EnumerateVSInstancesWithCOM
|
|
|
|
|
|
|
|
|
|
| |
Previously the `CMAKE_GENERATOR_INSTANCE` value was used only to filter
the instances reported by the Visual Studio Installer tool. If the
specified install location is not known to the VS Installer, but the
user provided a `version=` field, check for the installation directly
on disk.
Fixes: #21639, #22197
|
| |
|
| |
|
| |
|
|
|
|
| |
Minimize the amount of information needed about a VS instance.
|
|
|
|
|
| |
The field has not been used since commit 3fd65f5ca6 (VS: Compare VS
instance versions as strings, 2021-06-17, v3.21.0-rc1~11^2~1).
|
|
|
|
| |
This makes the values more readable.
|
| |
|
|
|
|
|
| |
Run the `clang-format.bash` script to update our C and C++ code to a new
include order `.clang-format`. Use `clang-format` version 6.0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is generated by a python script that uses regular expressions to
search for string concatenation patterns of the kind
```
std::string str = <ARG0>;
str += <ARG1>;
str += <ARG2>;
...
```
and replaces them with a single `cmStrCat` call
```
std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...);
```
If any `<ARGX>` is itself a concatenated string of the kind
```
a + b + c + ...;
```
then `<ARGX>` is split into multiple arguments for the `cmStrCat` call.
If there's a sequence of literals in the `<ARGX>`, then all literals in the
sequence are concatenated and merged into a single literal argument for
the `cmStrCat` call.
Single character strings are converted to single char arguments for
the `cmStrCat` call.
`std::to_string(...)` wrappings are removed from `cmStrCat` arguments,
because it supports numeric types as well as string types.
`arg.substr(x)` arguments to `cmStrCat` are replaced with
`cm::string_view(arg).substr(x)`
|
|
|
|
|
|
|
|
|
|
| |
This adds the following functions to `cmStringAlgorithms`:
- `cmIsSpace`
- `cmTrimWhitespace` (moved from `cmSystemTools::TrimWhitespace`)
- `cmEscapeQuotes` (moved from `cmSystemTools::EscapeQuotes`)
- `cmTokenize` (moved from `cmSystemTools::tokenize` and adapted to
accept `cm::string_view`)
|
|
|
|
|
|
|
|
| |
A temporary workaround added by commit 626c51f47b (VS: Update for Visual
Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) is no longer needed
as of VS 2019 preview 4.
Fixes: #18898
|
|
|
|
|
|
| |
The toolset is now called `v142`. Use matching flag tables.
Fixes: #18834
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
d44f81c217 VS: Exclude VS 2019 instances when using VS 2017 generator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2775
|
| |
| |
| |
| |
| |
| |
| | |
Filter instances reported by the VS Installer to consider only VS 2017
instances for the "Visual Studio 15 2017" generator.
Fixes: #18721
|
|/
|
|
|
|
|
|
|
|
| |
Enterprise WDK is a command line build enviornment that does not require
any installation prior to use.
More information and download can be found here:
https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/using-the-enterprise-wdk
Signed-off-by: Jon Doron <arilou@gmail.com>
|
|
|
|
| |
We already detect the VS toolset version. Expose it to clients.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|
|
|
|
|
|
|
|
|
| |
Visual Studio 2017 supports multiple instances installed on a single
machine. We use the Visual Studio Installer tool to enumerate instances
and select one. Once we select an instance for a given build tree, save
the result in `CMAKE_GENERATOR_INSTANCE` so we can re-configure the tree
with the same instance on future re-runs of CMake.
Fixes: #17268
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The `Microsoft.VisualStudio.Component.VC.Tools.x86.x64` component is
not the only way a VS instance may provide the `cl` compiler tool.
For example, VS 2017 Express Edition does not install that component.
Instead search for the tools directly on disk within an instance.
Suggested-by: Rich Chiodo <rchiodo@microsoft.com>
Fixes: #17349
|
| |
|
|
|
|
| |
This also adds a missing conversion to unix slashes in one code path.
|
| |
|
|
|
|
|
|
|
|
|
| |
In the `Visual Studio 15 2017` generator, if the `VS150COMNTOOLS`
environment variable points at a specific VS 2017 instance reported by
the Visual Studio Installer tool, use that as the preferred instance.
Inspired-by: Iyyappa Murugandi <iyyappam@microsoft.com>
Fixes: #16846
|
|
|
|
|
| |
This method short-circuits when an instance has already been chosen, so
avoid duplicating this check at call sites.
|
|
|
|
|
|
|
| |
Fix logic in cmVSSetupAPIHelper::IsVS2017Installed to work correctly on
repeat calls.
Closes: #16549
|
|
VS 2017 exports a COM component which can be queried to find if VS 2017
is installed and also other components such as VC toolset and Windows
SDKs. Add a helper class to interact with this interface.
|