summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio10Generator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* VS: Fix VCTargetsPath detection when cross-compilingBrad King2021-04-271-0/+1
| | | | | | | Tell `MSBuild` to use the same `Platform` that we generate into the `VCTargetsPath` detection project. Fixes: #22068
* VS: Add a mostly-undocumented hook to load custom JSON flag tablesBrad King2021-03-221-0/+36
| | | | | | | | | | | The names and formats of our VS flag tables are internal implementation details. However, some institutions need to maintain support for non-public VS platforms and toolsets. Provide a hook that their projects can use to load custom flag table files. This helps avoid distributing a custom CMake package within such institutions. Document the hook itself, but explicitly specify that the files the hook loads are not considered a stable interface.
* VS: switch to new folder structure while keeping the old one workingMarcel Ritzschke2021-03-181-2/+25
| | | | Fixes: #21170
* Merge topic 'vs-toolset-version'Brad King2021-03-151-41/+32
|\ | | | | | | | | | | | | | | | | 30c835428f VS: Accept and translate '-T version=' values with three components 58a50a3a0a VS: Fix '-T version=14.28' under VS 16.9 09f59da7f0 cmGlobalVisualStudioVersionedGenerator: Clarify local variable name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5903
| * VS: Fix '-T version=14.28' under VS 16.9Brad King2021-03-121-36/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * cmGlobalVisualStudioVersionedGenerator: Clarify local variable nameBrad King2021-03-121-5/+5
| |
* | cmGlobalVisualStudio10Generator: Generalize flag table lookup interfaceBrad King2021-03-051-22/+37
| |
* | cmGlobalVisualStudio10Generator: Clarify LoadFlagTable argument nameBrad King2021-03-051-5/+5
| |
* | cmGlobalVisualStudio10Generator: Drop unnecessary temporariesBrad King2021-03-051-16/+16
| |
* | cmGlobalVisualStudio10Generator: Drop default toolset name canonicalizationBrad King2021-03-051-27/+10
| | | | | | | | The default toolset names are always canonical.
* | cmGlobalVisualStudio10Generator: Remove redundant argumentsBrad King2021-03-051-29/+13
| |
* | cmGlobalVisualStudio10Generator: Remove redundant argumentsBrad King2021-03-051-24/+18
| |
* | cmGlobalVisualStudio10Generator: Clarify method nameBrad King2021-03-051-25/+27
| |
* | cmGlobalVisualStudio10Generator: Remove unused flag table method argumentBrad King2021-03-051-62/+59
| |
* | cmGlobalVisualStudio10Generator: Adopt flag table name methodsBrad King2021-03-051-26/+162
|/ | | | Migrate them from `cmVisualStudio10ToolsetOptions`.
* Refactor: Add allowArch parameter to cmake::CreateGlobalGenerator()Kyle Edwards2020-10-051-2/+2
|
* Visual Studio: Add Android supportKyle Edwards2020-06-241-18/+82
|
* cmGlobalVisualStudio10Generator: Move variable initialization to headerKyle Edwards2020-06-181-3/+0
|
* Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-071-2/+2
| | | | Fixes: #20666
* replace "std::string::find(x) == 0" with cmHasPrefix()Rolf Eike Beer2020-03-231-1/+2
|
* Merge topic 'vs-version-for-unity'Brad King2020-02-051-0/+6
|\ | | | | | | | | | | | | 9135954e2f VS: Do not use native unity builds on VS 2017 versions less than 15.8 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4324
| * VS: Do not use native unity builds on VS 2017 versions less than 15.8Brad King2020-02-041-0/+6
| | | | | | | | | | | | | | | | VS 2017 version 15.8 introduced support for unity builds implemented in part by the `$(VCTargetsPath)/Microsoft.Cpp.Unity.targets` file. Do not enable unity builds on VS 15 versions that do not have that file. Fixes: #20284
* | Source: use std::string in place of const char*Vitaly Stakhovsky2020-01-291-6/+5
| |
* | GlobalGenerator family: modernize memory managementMarc Chevrier2020-01-071-10/+14
| |
* | cmLocalGenerator: modernize memory managementMarc Chevrier2019-12-091-3/+6
| |
* | VS: Add support to override VCTargetsPath through toolsetAlexander Boczar2019-10-151-1/+29
| | | | | | | | Fixes: #19708
* | cmake: Teach --build mode to load CMAKE_GENERATOR_TOOLSETAlexander Boczar2019-10-151-1/+5
|/ | | | | Extend the `cmGlobalGenerator::SetGeneratorToolset` signature to indicate when it is called from `cmake::build`.
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-7/+8
| | | | | 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.
* Merge topic 'vs-cuda-custom-dir'Brad King2019-09-031-2/+56
|\ | | | | | | | | | | | | | | | | | | | | 25f29b9741 cuda: Adapted tests to work with modified cuda toolset ee86770a3f cuda: Added docs for extended cuda toolset 0ad180d712 cuda: Extend cuda compiler detection to work with custom cuda path 55b0532128 cuda: Extend vs10 target generator to use custom cuda path df0247a371 cuda: Extend toolset argument to accept path Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3713
| * cuda: Extend toolset argument to accept pathBenjamin Wozniak2019-08-271-2/+56
| | | | | | | | | | | | | | | | Previously cuda could only be used with cmake if it is installed globally on the system. Sometimes this is not possible (eg docker, packaging with conan, etc.). Thus the cuda toolset argument is extended to take a path to a cuda install directory.
* | Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-16/+13
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)`
* avoid adding multiple consecutive string literals to std::stringRolf Eike Beer2019-08-181-2/+1
| | | | While at it change some single character additions to be of type char.
* cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenizeSebastian Holtermann2019-08-051-1/+1
| | | | | | | | | | 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`)
* cmMakefile: Let AddDefinition accept a value as cm::string_viewSebastian Holtermann2019-07-241-3/+2
| | | | | | | | | | | | | | | | This changes `cmMakefile::AddDefinition` to take a `cm::string_view` as value argument instead of a `const char *`. Benefits are: - `std::string` can be passed to `cmMakefile::AddDefinition` directly without the `c_str()` plus string length recomputation fallback. - Lengths of literals passed to `cmMakefile::AddDefinition` can be computed at compile time. In various sources uses of `cmMakefile::AddDefinition` are adapted to avoid `std::string::c_str` calls and the `std::string` is passed directly. Uses of `cmMakefile::AddDefinition`, where a `nullptr` `const char*` might be passed to `cmMakefile::AddDefinition` are extended with `nullptr` checks.
* VS: Fix ApplicationTypeRevision in builtin check projectsBrad King2019-05-211-2/+2
| | | | | | | Do not use the entire `CMAKE_SYSTEM_VERSION`, but rather the first two components only. Fixes: #19275
* VS: Factor out helper to compute ApplicationTypeRevisionBrad King2019-05-211-0/+9
| | | | This is the first two components of `CMAKE_SYSTEM_VERSION`.
* Fix invalid ///! doxygen comment line startsSebastian Holtermann2019-03-311-1/+1
| | | | | In various places `///!` was used to start a comment line. This is not valid Doygen syntax. This patch replaces `///!` comment starts with `//!`.
* cmake: Teach --build mode to support multiple targetsBartosz Kosiorek2019-03-051-55/+66
| | | | Fixes: #16136
* cmGlobalGenerator: Change case of methods from GeneratedMakeCommand structBartosz Kosiorek2019-03-041-12/+12
|
* cmake: Progress functions use `std::string` paramVitaly Stakhovsky2019-02-111-1/+1
|
* Modernize: Use ranged for-loops when possibleArtur Ryt2019-02-071-4/+5
| | | | | | | Replaced most manual `const_iterator`-based loops and some reverse-iterator loops with range loops. Fixes: #18858
* VS: Fix nowarn compiler option to accept warning numbers.Wil Stark2019-02-071-0/+2
| | | | | | Warning disables are transferred to the VS IDE `<NoWarn>` node. Fixes: #18878
* Merge topic 'add_consistent_verbose_build_flag'Brad King2019-01-291-14/+21
|\ | | | | | | | | | | | | | | | | | | | | | | 66801f4d40 cmake: Add tests for verbose output to --build mode 439fe2e253 cmake: Add options for verbose output to --build mode 638667efa2 cmake: cmcmd.cxx fix "The arguments are" comments 3ca4402966 ctest: Fix --build-and-test without --build-target on Xcode cb6c233ecc cmake: Add -hideShellScriptEnvironment xcodebuild option 1a45266cb5 cmGlobalGenerator: Add a class that represent the build command Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2708
| * cmake: Add options for verbose output to --build modeFlorian Maushart2019-01-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | While we already support `VERBOSE` environment variable and `CMAKE_VERBOSE_MAKEFILE` cached variable, add `-v` and `--verbose` command line options to be able to activate verbose output directly from CMake's build tool mode command line. Also make `msbuild` honor the verbosity setting. `xcodebuild` still doesn't honor the verbosity setting as it will need a policy added and reworking of cmGlobalGenerator and cmsys to support multiple command invocation.
| * cmGlobalGenerator: Add a class that represent the build commandRobert Maynard2019-01-251-14/+17
| | | | | | | | | | | | This refactors a std::vector<std::string> into a class so that we can extend the features to represent things such as multiple chained commands in the future.
* | VS: Teach VS 2019 generator to select host tools matching host archBrad King2019-01-281-2/+18
| | | | | | | | | | This generator is new so we can introduce the long-desired behavior of selecting ``host=x64`` tools by default on x64 hosts.
* | VS: Use internal abstraction for VCTargetsPath host archBrad King2019-01-281-3/+2
| | | | | | | | | | Call our internal host architecture lookup method rather than directly accessing a member used by its implementation.
* | Merge topic 'cmake-files-directory'Brad King2019-01-251-2/+2
|\ \ | |/ |/| | | | | | | | | | | 3e867ed400 cmake: inlined files dir constant and removed it from cmake.h Acked-by: Kitware Robot <kwrobot@kitware.com> Rejected-by: vvs31415 <vstakhovsky@fastmail.com> Merge-request: !2655
| * cmake: inlined files dir constant and removed it from cmake.hBruno Manganelli2019-01-211-2/+2
| |
* | Add global generator factory method to get default platform nameBrad King2019-01-181-0/+2
| |