summaryrefslogtreecommitdiffstats
path: root/Source/cmVSSetupHelper.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmStrCat: use in Windows-specific sourcesBen Boeckel2023-07-281-5/+6
|
* clang-tidy: fix `readability-isolate-declaration` lintsBen Boeckel2022-11-291-2/+5
|
* clang-tidy: fix `readability-string-compare` lintsBen Boeckel2022-11-291-3/+3
|
* clang-tidy: fix `readability-braces-around-statements` lintsBen Boeckel2022-11-291-9/+18
|
* clang-tidy: fix `readability-container-size-empty` lintsBen Boeckel2022-11-291-2/+2
|
* clang-tidy: fix `readability-else-after-return` lintsBen Boeckel2022-11-291-7/+5
|
* clang-tidy: fix `modernize-use-nullptr` lintsBen Boeckel2022-11-291-22/+22
|
* clang-tidy: fix `modernize-use-default-member-init` lintsBen Boeckel2022-11-291-1/+0
|
* VS: Fix crash finding vswhere on 32-bit WindowsBrad King2022-10-261-2/+21
| | | | | | | | | | | 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
* VS: Add support for enumerating VS instances with vswhereNiyas Sait2022-04-131-2/+56
|
* VS: refactor EnumerateAndChooseVSInstanceNiyas Sait2022-04-111-56/+72
| | | | | Move all VS instance enumeration code using COM interface to EnumerateVSInstancesWithCOM
* VS: Allow CMAKE_GENERATOR_INSTANCE to specify portable instanceBrad King2021-10-291-0/+38
| | | | | | | | | | 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
* VS: Support version specification in CMAKE_GENERATOR_INSTANCEBrad King2021-10-291-1/+12
|
* cmVSSetupHelper: Factor out helper to load MSVC toolset versionBrad King2021-10-291-16/+26
|
* cmVSSetupHelper: Convert wide to narrow strings earlyBrad King2021-10-291-12/+11
|
* cmVSSetupHelper: Drop unused InstanceId fieldBrad King2021-10-291-7/+0
| | | | Minimize the amount of information needed about a VS instance.
* cmVSSetupHelper: Drop unused ullVersion fieldBrad King2021-10-291-7/+0
| | | | | 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).
* VS: Compare VS instance versions as stringsBrad King2021-06-171-5/+3
| | | | This makes the values more readable.
* VS: Extract instance version from VS InstallerJustin Goshi2020-06-031-0/+14
|
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-2/+3
| | | | | 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.
* Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)`
* cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenizeSebastian Holtermann2019-08-051-1/+2
| | | | | | | | | | 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`)
* VS: Drop workaround needed only for VS 2019 preview 2 and 3Brad King2019-02-281-8/+0
| | | | | | | | 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
* VS: Update for Visual Studio 2019 Preview 2Brad King2019-01-241-1/+9
| | | | | | The toolset is now called `v142`. Use matching flag tables. Fixes: #18834
* VS: Parameterize cmVSSetupAPIHelper instances with VS versionBrad King2019-01-111-9/+9
|
* Merge topic 'vs2017-skip-2019'Brad King2019-01-091-0/+9
|\ | | | | | | | | | | | | d44f81c217 VS: Exclude VS 2019 instances when using VS 2017 generator Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2775
| * VS: Exclude VS 2019 instances when using VS 2017 generatorBrad King2019-01-081-0/+9
| | | | | | | | | | | | | | Filter instances reported by the VS Installer to consider only VS 2017 instances for the "Visual Studio 15 2017" generator. Fixes: #18721
* | cmVSSetupHelper: Support Enterprise WDK build enviornmentJon Doron2018-11-271-0/+33
|/ | | | | | | | | | 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>
* cmVSSetupHelper: Expose default toolset versionBasil Fierz2018-06-221-0/+13
| | | | We already detect the VS toolset version. Expose it to clients.
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-1/+1
| | | | | | | | | | | | 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.
* VS: Select and save a VS 2017 instance persistentlyBrad King2017-10-191-7/+0
| | | | | | | | | | 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
* cmVSSetupHelper: Add option to specify an instanceBrad King2017-10-191-4/+25
|
* VS: Detect compiler component in VS 2017 instances more reliablyBrad King2017-10-161-17/+26
| | | | | | | | | | 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
* cmVSSetupHelper: Fix install location encoding conversionBrad King2017-10-161-2/+3
|
* cmVSSetupHelper: Factor out install location string constructionBrad King2017-10-161-6/+10
| | | | This also adds a missing conversion to unix slashes in one code path.
* Meta: replace empty-string assignments with `clear()`.Pavel Solodovnikov2017-09-151-1/+1
|
* VS: Choose VS 2017 instance via environment variableBrad King2017-07-101-0/+28
| | | | | | | | | 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
* cmVSSetupHelper: Simplify use of EnumerateAndChooseVSInstanceBrad King2017-01-121-38/+7
| | | | | This method short-circuits when an instance has already been chosen, so avoid duplicating this check at call sites.
* VS: Fix detection of VS 2017 installation with WindowsStoreBrad King2017-01-121-0/+2
| | | | | | | Fix logic in cmVSSetupAPIHelper::IsVS2017Installed to work correctly on repeat calls. Closes: #16549
* VS: Add helper class to interact with Visual Studio InstallerIyyappa Murugandi2016-12-161-0/+395
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.