summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudioGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* cmGlobalGenerator: Allow FindMakeProgram to failBrad King2016-10-201-1/+1
| | | | | Revise its signature to return `bool` so that it can fail and abort configuration early.
* VS: Add CSharp project uuid and file extensionMichael Stürmer2016-10-191-0/+3
| | | | | This is in preparation for adding CSharp language support to the VS generator.
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* VS15: Add Visual Studio 15 generatorBrad King2016-09-071-1/+2
| | | | | | | | | | | | | | | | Call the generator "Visual Studio 15" without any year because the preview version of VS 15 does not provide a year in the product name. Copy cmGlobalVisualStudio14Generator to cmGlobalVisualStudio15Generator and update version numbers accordingly. Add the VS15 enumeration value. Note that we do not need to add a MSVC15 variable or v150 toolset because Visual Studio 15 comes with an updated version of the v140 toolset and remains ABI-compatible. Teach tests VSExternalInclude, RunCMake.GeneratorPlatform, and RunCMake.GeneratorToolset to treat VS 15 as they do VS 10-14. Closes: #16143
* cmGlobalGenerator: Make IsMultiConfig() constTobias Hunger2016-06-011-1/+1
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-21/+38
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * 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: Add option to choose the `.sln` startup project (#15578)Davy Durham2016-03-221-0/+2
| | | | | | | | Add a `VS_STARTUP_PROJECT` directory property to specify the project that should be placed first in the `.sln` file so that it will be selected as the default startup project. Co-Author: Taylor Braun-Jones <taylor.braunjones@avigilon.com>
* Drop Visual Studio 6 generatorBrad King2016-03-091-1/+0
| | | | | | This generator has been deprecated since CMake 3.3. Remove it. Update documentation, modules, and tests to drop content specific to this generator.
* VS: Port interface to cmGeneratorTargetStephen Kelly2015-10-241-8/+10
|
* VS: Port WriteUtilityDepends to cmGeneratorTargetStephen Kelly2015-10-241-1/+1
|
* VS: Port utility depends to cmGeneratorTargetStephen Kelly2015-10-241-2/+2
|
* VS: Port target depends to cmGeneratorTargetStephen Kelly2015-10-241-2/+2
|
* VS: Port TargetIsFortranOnly to cmGeneratorTargetStephen Kelly2015-10-241-1/+1
|
* VS: Port LinkClosure to cmGeneratorTargetStephen Kelly2015-10-241-2/+2
|
* VisualStudio: Replace Compute override with AddExtraIDETargets override.Stephen Kelly2015-10-051-1/+1
|
* VS: Refactor target ordering logicBrad King2015-09-221-3/+9
| | | | | | | | Refactor cmGlobalVisualStudioGenerator::TargetCompare to store the name of the target that should come first instead of hard-coding "ALL_BUILD". Update client sites to specify "ALL_BUILD" when ordering for .sln files and an empty string otherwise (in cases when "ALL_BUILD" should not be encountered anyway).
* cmGlobalGenerator: Virtualize the Compute step and override it.Stephen Kelly2015-07-301-1/+1
|
* Merge topic 'auto_export_dll_symbols'Brad King2015-07-081-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8f86407c Windows: Optionally generate DLL module definition files automatically 069aa93b bindexplib: Add support for "/bigobj" format objects 61bbbdcf bindexplib: Fix treatment of some symbols de70c922 bindexplib: Teach DumpFile to return errors 8ea69dfe bindexplib: Build source as part of CMakeLib 2963cb2a bindexplib: Wrap long lines 4ff09893 bindexplib: Drop code that CMake does not need 7de8276c bindexplib: Add copyright/license notice block 65086ad7 bindexplib: Import original implementation from CERN
| * Windows: Optionally generate DLL module definition files automaticallyBill Hoffman2015-07-061-0/+4
| | | | | | | | | | | | | | Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically generate a module definition file from MS-compatible .obj files and give it to the linker in order to export all symbols from the .dll part of a SHARED library.
* | cmComputeTargetDepends: Change API to use cmGeneratorTarget.Stephen Kelly2015-07-011-1/+2
|/
* cmGlobalGenerator: Require a cmake instance in ctor.Stephen Kelly2015-05-271-1/+1
| | | | It is required anyway, so this makes it explicit.
* VS: Move version information to global generator.Stephen Kelly2015-05-191-0/+21
|