summaryrefslogtreecommitdiffstats
path: root/Source/cmVSSetupHelper.h
Commit message (Collapse)AuthorAgeFilesLines
* VS: Allow CMAKE_GENERATOR_INSTANCE to specify portable instanceBrad King2021-10-291-0/+1
| | | | | | | | | | 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/+3
|
* cmVSSetupHelper: Convert wide to narrow strings earlyBrad King2021-10-291-2/+2
|
* cmVSSetupHelper: Drop unused InstanceId fieldBrad King2021-10-291-1/+0
| | | | Minimize the amount of information needed about a VS instance.
* cmVSSetupHelper: Drop unused ullVersion fieldBrad King2021-10-291-1/+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-2/+2
| | | | This makes the values more readable.
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* VS: Extract instance version from VS InstallerJustin Goshi2020-06-031-0/+1
|
* Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-071-2/+1
| | | | Fixes: #20666
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-2/+2
| | | | | 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.
* cmVSSetupHelper: Remove unused SmartBSTR copy operationsBrad King2019-08-261-22/+2
| | | | | For our use case we do not actually need to copy these. Mark the operations as `= delete` to simplify the code.
* cmVSSetupHelper: Fix SmartBSTR copy operationsBrad King2019-08-261-2/+4
| | | | | | | | | Fix the SmartBSTR copy constructor and copy assignment operator added by commit 18c8278b62 (VS: Add helper class to interact with Visual Studio Installer, 2016-12-14, v3.8.0-rc1~93^2~4) to use the string from the source of the copy. Issue: #19610
* cleanup: Prefer compiler provided special member functionsRegina Pfeifer2019-01-251-2/+0
|
* VS: Parameterize cmVSSetupAPIHelper instances with VS versionBrad King2019-01-111-2/+4
|
* cmVSSetupHelper: Support Enterprise WDK build enviornmentJon Doron2018-11-271-0/+1
| | | | | | | | | | 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/+2
| | | | We already detect the VS toolset version. Expose it to clients.
* cmVSSetupHelper: Use in-class member initializationBrad King2018-06-221-9/+4
|
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-1/+2
| | | | | | | | | | | | 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.
* cmVSSetupHelper: Add option to specify an instanceBrad King2017-10-191-0/+4
|
* VS: Detect compiler component in VS 2017 instances more reliablyBrad King2017-10-161-2/+1
| | | | | | | | | | 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: Factor out install location string constructionBrad King2017-10-161-0/+2
| | | | This also adds a missing conversion to unix slashes in one code path.
* VS: Add helper class to interact with Visual Studio InstallerIyyappa Murugandi2016-12-161-0/+154
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.