summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudioGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Drop Visual Studio 12 2013 generatorBrad King2024-08-281-2/+0
| | | | This generator has been deprecated since CMake 3.28. Remove it.
* Source: Delete unused prototypesVitaly Stakhovsky2024-07-291-3/+0
|
* Drop Visual Studio 9 2008 generatorBrad King2024-05-081-1/+0
| | | | This generator has been deprecated since CMake 3.27. Remove it.
* Merge topic 'build-pch'Brad King2023-06-231-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aba5bab62e ci: Add nightly job to build CMake with PCH on macOS 44f08e94ff ci: Add nightly job to build CMake with PCH on Windows e0eb97e923 libuv: Precompile common expensive headers e2efa89c7f cmcppdap: Precompile common expensive headers 9d7921d388 liblzma: Precompile common expensive headers 6aaefdb3be libarchive: Precompile common expensive headers a8d91e2719 curl: Precompile common expensive headers 59277bccd3 bzip: Precompile common expensive headers ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8571
| * codecvt: Extrace codecvt::Encoding to remove codecvt includesClemens Wasser2023-06-221-3/+3
| |
* | Merge topic 'vs-sdk-selection'Brad King2023-06-231-0/+2
|\ \ | |/ |/| | | | | | | | | a4d532e998 VS: Restore Windows SDK selection with platform in generator name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8583
| * VS: Restore Windows SDK selection with platform in generator nameBrad King2023-06-221-0/+2
| | | | | | | | | | | | | | | | | | Refactoring in commit e259063b0a (VS: Defer Windows SDK selection until CMAKE_GENERATOR_PLATFORM is known, 2023-03-31, v3.27.0-rc1~206^2~5) accidentally dropped the Windows SDK selection code path for VS generators named with the old-style platform suffix. Fixes: #25007
* | Drop Visual Studio 11 2012 generatorBrad King2023-06-131-1/+0
|/ | | | This generator has been deprecated since CMake 3.25. Remove it.
* clang-tidy: fix `readability-redundant-access-specifiers` lintsBen Boeckel2022-11-291-1/+0
|
* clang-tidy: fix `modernize-pass-by-value` lintsBen Boeckel2022-11-291-2/+2
|
* clang-tidy: fix `modernize-use-override` lintsBen Boeckel2022-11-291-1/+1
|
* Drop Visual Studio 10 2010 generatorBrad King2022-09-261-1/+0
| | | | This generator has been deprecated since CMake 3.22. Remove it.
* VS: Exclude ZERO_CHECK.proj from .sln for include_external_msprojectSumit Bhardwaj2022-07-201-0/+3
| | | | | | | | | | | | | | | In `cmGlobalVisualStudio7Generator::WriteTargetsToSolution`, we skip writing `ZERO_CHECK.proj` to solution file as the check in `cmGlobalVisualStudioGenerator::IsInSolution` returns `false` for `ZERO_CHECK`. However, we write ZERO_CHECK to ProjectDependencies for external projects as there are no checks in `cmGlobalVisualStudio71Generator::WriteExternalProject`. Similar to `cmGlobalVisualStudioGenerator::IsInSolution`, we introduce `IsDepInSolution(const std::string&)` which excludes `ZERO_CHECK.proj` from being added to sln file for the cases where we have `ZERO_CHECK.proj`. Fixes: #23708
* VS: Introduce IsInSolution to check whether a target is in sln fileSumit Bhardwaj2022-02-121-0/+3
| | | | | | | | | | | Previously, different versions of VS Generators checked whether a target was in .sln file or not by checking whether the target was to be written to build system or not. As we move `ZERO_CHECK.vcxproj` to `.proj`, we want to exclude those files from being written to `.sln` files too. This commit introduces `IsInSolution()` at `cmGlobalVisualStudioGenerator` level which can be customized at specific versioned Generator when needed.
* Make cmGlobalVisualStudioGenerator::VSVersion enum classSumit Bhardwaj2022-01-251-1/+1
|
* Source: Fix possible IWYU warnings in Windows generatorsNAKAMURA Takumi2021-11-191-0/+3
|
* Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain fileBrad King2021-10-201-5/+0
| | | | | | | | | | | | | | | Revert the changes from commit d5b5c19278 (cmGlobalGenerator: FindMakeProgram() before CMakeDetermineSystem, 2020-06-15, v3.19.0-rc1~619^2~3) and commit ef91fb02f3 (cmGlobalGenerator: FindMakeProgram() at a generator-specific time, 2020-11-23, v3.19.1~2^2). We must delay selecting the location of MSBuild until after an instance of Visual Studio has been selected. It is now safe to revert the ordering because the motivating use case (sysroot detection in Platform/Android-Determine) has been implemented another way. Fixes: #22782
* Rename cmProp in cmValueMarc Chevrier2021-09-211-1/+1
|
* cmGlobalGenerator::PrintCompilerAdvice: use cmProp as augmentMarc Chevrier2021-09-191-1/+1
|
* VS: Add Visual Studio 17 2022 generatorBrad King2021-06-251-1/+2
| | | | Fixes: #22339
* cmGlobalGenerator: FindMakeProgram() at a generator-specific timeKyle Edwards2020-11-231-0/+5
| | | | | | | | | | d5b5c192 moved FindMakeProgram() to an earlier time, which resulted in CMAKE_MAKE_PROGRAM not being read from the toolchain file. Change it to only call FindMakeProgram() early in the specific cases of Visual Studio and Xcode, and restore the old behavior for all other generators. Fixes: #21486
* 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.
* Multi-Ninja: Add precompile headers supportCristian Adam2020-01-171-0/+2
| | | | Fixes: #19789
* VS: Fix access violation when calling Visual Studio macroDaniel Eiband2019-09-241-1/+1
| | | | Fixes: #19730
* clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-6/+5
| | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* Precompile headers: Add support for Visual Studio generatorsCristian Adam2019-08-281-0/+7
| | | | | | Tested with Visual C++ 2017 on Windows. Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
* VS: Provide the default platform name to project codeBrad King2019-04-191-0/+3
| | | | | | | | | | | | | | | | | | The value of `CMAKE_VS_PLATFORM_NAME` is computed by Visual Studio generators based on `CMAKE_GENERATOR_PLATFORM` or some default. Prior to the VS 2019 generator, the default was always `Win32`. However, for the `Visual Studio 16 2019` generator, the default is based on the host platform. Store the default in a new `CMAKE_VS_PLATFORM_NAME_DEFAULT` variable for use by project code. This is particularly useful in toolchain files because they are allowed to set `CMAKE_GENERATOR_PLATFORM` and so `CMAKE_VS_PLATFORM_NAME` is not yet known. Of course the toolchain file author knows whether it will set `CMAKE_GENERATOR_PLATFORM`, and if not then `CMAKE_VS_PLATFORM_NAME_DEFAULT` provides the platform name that will be used. Fixes: #19177
* VS: Add Visual Studio 16 2019 generatorBrad King2019-01-111-1/+2
| | | | | | | | | | | | 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: Track explicitly when platform is specified in generator nameBrad King2019-01-101-0/+1
|
* VS: Move platform name members to top-level global generatorBrad King2019-01-101-1/+13
| | | | | We no longer support any VS versions that pre-date support for multiple platforms (target architectures).
* VS: Clarify global generator constructor interfaceBrad King2019-01-101-1/+2
| | | | | | Make the constructors protected since they should be produced through factories. Also rename `platform{ => InGenerator}Name` to clarify the meaning of the argument.
* VS: Convert WriteSLNHeader to non-virtual lookup tableBrad King2019-01-101-0/+2
|
* VS: Move ExpressEdition member to top-level generatorBrad King2019-01-101-0/+4
| | | | | We no longer support any VS versions that pre-date introduction of express editions.
* VS: Convert GetIDEVersion to non-virtual table lookupBrad King2019-01-101-1/+1
|
* cmGlobalVisualStudioGenerator::GetIDEVersion(): const addedVitaly Stakhovsky2019-01-021-1/+1
|
* Add missing overrideVitaly Stakhovsky2018-12-301-2/+2
|
* cmGlobalVisualStudioGenerator: remove TargetCanBeReferenced()Michael Stürmer2018-04-241-3/+0
|
* remove TargetIsCSharpOnly() and use methods from cmGeneratorTargetMichael Stürmer2018-04-231-3/+0
|
* Drop Visual Studio 8 2005 generatorBrad King2018-04-021-1/+0
| | | | This generator has been deprecated since CMake 3.9. Remove it.
* VS: Use 'override' keyword for overridden methods in generator classesVitaly Stakhovsky2017-12-161-5/+5
| | | | The corresponding 'virtual' removed.
* cmGlobalGenerator: Add IsIncludeExternalMSProjectSupported methodTomoki Imai2017-12-041-0/+2
|
* cmake: Add --open option for IDE generatorsGregor Jasny2017-10-131-0/+3
|
* Use C++11 override instead of CM_OVERRIDEBrad King2017-09-151-1/+1
| | | | | | | | We now require C++11 support including `override`. Drop use of the old compatibility macro. Convert references as follows: git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' | xargs sed -i 's/CM_OVERRIDE/override/g'
* Merge branch 'backport-vs-csharp-ref-no-asm' into vs-csharp-ref-no-asmBrad King2017-09-051-0/+3
|\
| * VS: Do not reference output assemblies if not possible for CSharp targetMichael Stürmer2017-09-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v3.9.0-rc4~4^2 (Vs: allow CSharp targets to be linked to CXX targets, 2017-06-20) CSharp targets get `ProjectReference` entries to their dependencies. This causes VS to also reference the dependency's output assembly by default, which is incorrect for non-managed targets. Fix this by setting `ReferenceOutputAssembly` to `false` for targets that can't provide output assemblies. Unmanaged C++ targets (shared libs & executables) can still be referenced and a warning will be shown in the IDE but the build will not break anymore. Fixes: #17172
* | IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
|/ | | | Also remove `#include "cmConfigure.h"` from most source files.
* Drop Visual Studio 7 .NET 2003 generatorBrad King2017-04-191-1/+0
| | | | This generator has been deprecated since CMake 3.6. Remove it.
* cmGlobalVisualStudioGenerator: Drop VS7 enumeration valueBrad King2017-04-191-1/+0
| | | | | We no longer support the VS 7.0 (.NET 2002) IDE, so drop the enumeration value corresponding to its version.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* iwyu: Fix VisualStudio specific issuesDaniel Pfeifer2016-11-281-0/+15
|