summaryrefslogtreecommitdiff
path: root/Source/cmGlobalVisualStudioVersionedGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* VS: Defer Windows SDK selection until CMAKE_GENERATOR_PLATFORM is knownBrad King2023-04-051-1/+2
| | | | Prepare to teach `CMAKE_GENERATOR_PLATFORM` to affect SDK selection.
* VS: Add a variable to report the Visual Studio version build numberBrad King2022-12-071-0/+1
| | | | | | | | | | VS 2017 and above come with a Visual Studio Installer tool that tracks four-component Visual Studio version numbers. We already detect the VS version number because it is needed to make some generation decisions. Provide the number to projects in a `CMAKE_VS_VERSION_BUILD_NUMBER` variable so they can use it similarly. Fixes: #24230
* cmGlobalVisualStudioVersionedGenerator: check for C++ module supportBen Boeckel2022-12-011-0/+5
|
* cmGlobalVisualStudioVersionedGenerator: support dyndep in VS2022 and upBen Boeckel2022-12-011-0/+5
|
* Source: Fix possible IWYU warnings in Windows generatorsNAKAMURA Takumi2021-11-201-1/+3
|
* VS: Support version specification in CMAKE_GENERATOR_INSTANCEBrad King2021-10-291-0/+1
|
* VS: Parse comma-separated fields from CMAKE_GENERATOR_INSTANCEBrad King2021-10-291-0/+7
|
* cmGlobalVisualStudioVersionedGenerator: Fix repeating SetGeneratorInstanceBrad King2021-10-261-1/+1
| | | | | | Fix logic added by commit 8917b8512f (cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance, 2021-10-20) to avoid repeating work.
* cmGlobalVisualStudio10Generator: Add method to find MSBuild earlyBrad King2021-10-201-0/+2
| | | | | Add a way to find MSBuild before the main `FindMakeProgram` code path has executed.
* cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstanceBrad King2021-10-201-0/+3
|
* VS: Add Visual Studio 17 2022 generatorBrad King2021-06-251-0/+3
| | | | Fixes: #22339
* VS: Add support for Utf8Enconding when using VS 16.10+Gustavo Varo2021-06-171-0/+2
| | | | | | | On VS 16.10 Preview 2 or above, generate `UseUtf8Encoding` instead of `StdOutEncoding=UTF-8` in `.vcxproj` files. Fixes: #22032
* VS: Compare VS instance versions as stringsBrad King2021-06-171-1/+1
| | | | This makes the values more readable.
* cmGlobalVisualStudio10Generator: Adopt GetVSInstanceVersion methodBrad King2021-06-161-1/+1
| | | | Port from `cmGlobalVisualStudioVersionedGenerator`.
* VS: Fix '-T version=14.28' under VS 16.9Brad King2021-03-121-2/+2
| | | | | | | | | | | | | | | | | | CMake accepts the toolset version that is default in the current VS version by matching the name later VS versions will use for the SxS props files. It predicts the future name based on the first two components of the current VS version's default toolset. However, this heuristic breaks naming the VS 16.8 toolset version 14.28 under VS 16.9 because the latter's default toolset version is 14.28.29910, which did not increment the second version component (unprecedented in VS). Fix this by always using the requested version's SxS props file when it exists, even if it matches the first two components of the current VS version's default toolset. Also add a special case for the name VS 16.10 will use for VS 16.9's default toolset, so that it can be used with VS 16.9 too. Fixes: #21922
* VS: Generalize Win10 max SDK version to all VS generatorsjonathan molinatto2021-01-201-1/+1
| | | | | | | | | | | The `CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable added in CMake 3.19 by commit ba497111f6 (VS: Add option for custom Win10 SDK version maximum, 2020-08-20, v3.19.0-rc1~262^2) was documented as if it worked for all generators but implemented only to override CMake's builtin default for the VS 2015 max SDK version. Generalize the variable to set a custom max SDK version for later VS versions too. Fixes: #21720
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-3/+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: Add option for custom Win10 SDK version maximumjonathan molinatto2020-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | Since commit 83ddc4d289 (VS: Do not select a Windows SDK too high for current VS version, 2017-08-07, v3.13.0-rc1~72^2~2) we enforce a maximum SDK version for the VS 2015 generator. The blog post linked in the original commit is no longer available, but it can be seen here: * https://web.archive.org/web/20190108032520/https://blogs.msdn.microsoft.com/chuckw/2018/10/02/windows-10-october-2018-update/ In particular, it states: > VS 2015 Users: The Windows 10 SDK (15063, 16299, 17134, 17763) > is officially only supported for VS 2017. However, in some circumstances a higher version can be used. Add a `CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` to override the generator's default maximum SDK version. Fixes: #20633
* Visual Studio: Add Android supportKyle Edwards2020-06-241-0/+2
|
* VS: Use StdOutEncoding for VS 16.7 Preview 3 and aboveJustin Goshi2020-06-031-0/+2
| | | | | | | | | | | | | | | | | VS 16.6 added a `StdOutEncoding` setting for custom commands to tell MSBuild that the output is encoded as UTF-8. In commit bc877a7e94 (Add support to indicate UTF-8 custom command pipe output encoding, 2020-04-08) CMake learned to add the setting in anticipation of the VS 16.6 release. However, when 16.6 was released it had a bug in the implementation of custom tasks with StdOutEncoding enabled that was exposed by our test suite. In commit 5058fb5401 (VS: Drop StdOutEncoding with VS 16.6 pending investigation, 2020-05-29) we disabled the setting pending investigation. The problem is fixed in VS 16.7 Preview 3, so restore use of the setting when a VS instance of at least that version is detected. Fixes: #20769
* VS: Extract instance version from VS InstallerJustin Goshi2020-06-031-0/+2
|
* GlobalGenerator family: modernize memory managementMarc Chevrier2020-01-071-2/+3
|
* VS: Add Visual Studio 16 2019 generatorBrad King2019-01-111-0/+3
| | | | | | | | | | | | Add this generator *without* support for specifying the target architecture in the generator name. cmake-gui will be taught to provide a field for this, and command-line builds can use -A. Also, teach this generator to select a default target architecture based on the host architecture. Fixes: #18689 Inspired-by: Egor Pugin <egor.pugin@gmail.com>
* VS: Parameterize VS 2017 generator to support future versionsBrad King2019-01-111-1/+1
|
* VS: Rename VS 2017 generator sources to be version-independentBrad King2019-01-111-0/+62
Rename `cmGlobalVisualStudio{15 => Versioned}Generator`. Rename `Factory` to `Factory15` since that part still needs to be version-specific.