summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio10Generator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
* | Add global generator factory method to get list of known platformsBrad King2019-01-181-0/+9
| | | | | | | | | | | | | | | | | | Add a `cmGlobalGeneratorFactory::GetKnownPlatforms` method to return a list of known possible values for `CMAKE_GENERATOR_PLATFORM`. Implement the method for each generator by referencing the list of possible values documented in `Help/generator/*.rst` for it. Co-Author: Julien Jomier <julien.jomier@kitware.com>
* | Split global generator factory list with and without platformsBrad King2019-01-181-1/+9
|/ | | | | | Replace `cmGlobalGeneratorFactory::GetGenerators` with a pair of methods to split the list of generator names into those that have platforms in the name and those that do not.
* Merge topic 'support_per_toolset_json_flags'Brad King2019-01-161-37/+79
|\ | | | | | | | | | | | | c8ba777f6d GlobalVisualStudio10Generator: Support non-standard toolset json flag files. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2772
| * GlobalVisualStudio10Generator: Support non-standard toolset json flag files.Stephan Szabo2019-01-031-37/+79
| | | | | | | | | | | | If given a toolset that does not have an explicit mapping in cmVisualStudio10ToolsetOptions, check for a json flag file using the toolset name before trying the default toolset for the generator.
* | Factor out enum MessageType into dedicated headerBruno Manganelli2019-01-161-16/+17
| | | | | | | | Reduce the number of files relying on `cmake.h`.
* | VS: Add Visual Studio 16 2019 generatorBrad King2019-01-111-0/+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-2/+2
| |
* | VS: Clarify global generator constructor interfaceBrad King2019-01-101-2/+3
| | | | | | | | | | | | 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-10/+0
| |
* | VS: Convert GetToolsVersion to non-virtual table lookupBrad King2019-01-101-0/+21
|/
* Replace header flag tables with json readingStephan Szabo2018-11-281-39/+140
| | | | | Stop loading flag tables from header files and instead load the flag table information from json files in Templates/MSBuild/FlagTables.
* VS: Pass platform when invoking MSBuildBrad King2018-09-251-0/+1
| | | | | | | | | | MSBuild expects a `/p:Platform=...` argument to tell it which platform to build among those in the `.vcxproj` files. We have not historically had to do this because we generate only one platform. However, when a project uses `include_external_msproject` the included project file may have other platforms. Fixes: #18308
* cmLocalGenerator: return directories as const std::string&Vitaly Stakhovsky2018-08-271-1/+1
|
* VS: Allow toolset version selection to specify default toolsetBasil Fierz2018-06-241-18/+31
| | | | | | | | | | Teach the feature added by commit v3.12.0-rc1~38^2 (VS: Add option to select the version of the toolset used by VS 2017, 2018-05-19) to accept the default toolset version in addition to older versions. If the default toolset version is supplied, simply clear it so the default will be used. Fixes: #18107
* Merge topic 'vs-toolset-version'Brad King2018-05-301-0/+85
|\ | | | | | | | | | | | | | | 5f13168419 VS: Add option to select the version of the toolset used by VS 2017 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Francisco Facioni <fran6co@gmail.com> Merge-request: !2093
| * VS: Add option to select the version of the toolset used by VS 2017Basil Fierz2018-05-291-0/+85
| | | | | | | | | | | | | | | | Add new `version=` parameter in the toolset setting to select the version. Add variable `CMAKE_VS_PLATFORM_TOOLSET_VERSION` to hold the version, if one is set (blank indicates default). Fixes: #17549
* | cmake: Add options for parallel builds to --build modeFlorian Maushart2018-05-251-2/+14
|/ | | | | | | While we already support `cmake --build . -- -j`, the options after `--` are specific to the native build tool. Add new options `--parallel [<N>]` and `-j [<N>]` to abstract this and map to the proper option for the native build tool.
* cmGlobalVisualStudio10Generator: Use cmXMLWriter RAII helpersVitaly Stakhovsky2018-03-091-115/+78
| | | | | This simplifies our XML generation code and avoids the need to disable clang-format.
* VS: Use range-based 'for' loops in generator codeVitaly Stakhovsky2017-12-211-6/+6
| | | | Use `auto` for complex types.