summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
Commit message (Collapse)AuthorAgeFilesLines
* CUDA: Add cuda meta-features (e.g. ``cuda_std_11``) supportRobert Maynard2019-12-101-30/+189
|
* cmMakefile: Delay custom command creationDaniel Eiband2019-11-241-226/+170
| | | | | | | | Move custom command creation to cmLocalGenerator and dispatch custom commands in cmMakefile to generate time. Generators add custom commands using the new methods provided by cmLocalGenerator. Issue: #12877
* cmCustomCommand: Explicitly pass backtrace on constructionDaniel Eiband2019-11-241-3/+4
|
* cmMakefile: Explicitly pass backtrace to GetCustomCommandTargetDaniel Eiband2019-11-241-19/+19
| | | | | Allow GetCustomCommandTarget to be called at generate time with correct backtraces.
* cmMakefile: Delay CheckTargetProperties and FinalPass to generate timeDaniel Eiband2019-11-241-7/+10
|
* Add deprecation warnings for policies CMP0069 and belowBrad King2019-10-101-1/+1
| | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.9 and below to encourage projects to port away from setting policies to OLD.
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-5/+7
| | | | | 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 'fix-EXCLUDE_FROM_ALL-subdir-all'Brad King2019-09-301-6/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | dce58afd30 Merge branch 'backport-3.15-fix-EXCLUDE_FROM_ALL-subdir-all' 013d7dd484 Help: Mention 3.14.7 EXCLUDE_FROM_ALL fix in 3.15.4 release note 61103c0bac Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all' 1fe4501592 Help: Add release note for EXCLUDE_FROM_ALL fix in 3.15.4 05d7ca14e9 Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all' 62d45d91e8 Help: Add release note for EXCLUDE_FROM_ALL fix in 3.14.7 b3b1c7bf3a Restore "all" target in subdirectories marked EXCLUDE_FROM_ALL 156b56480a Makefiles: Revert "Make build root targets ... recursive" ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3863
| * Merge branch 'backport-3.15-fix-EXCLUDE_FROM_ALL-subdir-all'Brad King2019-09-301-6/+4
| |\ | | | | | | | | | | | | | | | | | | | | | Resolve conflicts with changes since the 3.15 series: * Convert `cmSystemTools::IsOn` => `cmIsOn`. * Move one "EXCLUDE_FROM_ALL" target property logic fix to its new location in `cmMakefile::AddNewUtilityTarget`.
| | * Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all'Brad King2019-09-301-6/+4
| | |\
| | | * Restore "all" target in subdirectories marked EXCLUDE_FROM_ALLBrad King2019-09-301-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "all" target in each directory is supposed to have targets from that directory even if the directory itself is marked `EXCLUDE_FROM_ALL` in its parent. This was broken by commit dc6888573d (Pass EXCLUDE_FROM_ALL from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) which made the participation of a target in "all" independent of context. Revert much of the logic change from that commit to restore the old behavior. Then re-implement the behavior intended by the commit to keep its test working. Extend the test to cover the old behavior too. Fixes: #19753
* | | | Merge topic 'objective-c-cxx'Brad King2019-09-301-68/+80
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dd0f304613 Objective C/C++: Add compiler standard detection b515af782b Help: Add release note for Objective-C/C++ language support 9e66397c28 Languages: Add support for Objective-C++ 80f120a85f Languages: Add support for Objective-C Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3811
| * | | Objective C/C++: Add compiler standard detectionCristian Adam2019-09-281-68/+80
| | | |
* | | | cmMakefile: Remove AddUtilityCommand overload without byproductsDaniel Eiband2019-09-261-16/+2
| | | |
* | | | cmMakefile: Extract utilities used for creation of custom commandsDaniel Eiband2019-09-261-117/+144
| | | | | | | | | | | | | | | | Decompose creation of custom commands further into logical steps.
* | | | cmCustomCommand: Move custom commandsDaniel Eiband2019-09-261-3/+3
| | | |
* | | | cmMakefile: Move enumerations into new headerDaniel Eiband2019-09-261-13/+14
|/ / / | | | | | | | | | The enumerations will also be used in cmLocalGenerator.
* | | Merge topic 'cmake-system-headers'Brad King2019-09-201-3/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4a08690ccf cmstd: Extend header <cm/iterator> c688b401d3 cmstd: Modernize CMake system headers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3776
| * | | cmstd: Modernize CMake system headersMarc Chevrier2019-09-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a standardized way to handle the C++ "standard" headers customized to be used with current CMake C++ standard constraints. Offer under directory `cm` headers which can be used as direct replacements of the standard ones. For example: #include <cm/string_view> can be used safely for CMake development in place of the `<string_view>` standard header. Fixes: #19491
* | | | Merge topic 'pch-source-list'Brad King2019-09-201-0/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9d2ac86f45 Precompile Headers: Add precompile header file to source list Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3832
| * | | | Precompile Headers: Add precompile header file to source listCristian Adam2019-09-191-0/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | The precompile header file will be added to the list of files, and be part of the newly "Precompile Header File" source group. Also make sure the sources have the header as dependency.
* | | | Merge topic 'split-custom-command-creation'Brad King2019-09-201-92/+214
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0e1faa28cb cmMakefile: Separate custom command setup from actual creation 56c204e8eb cmMakefile: Refactor AddCustomCommandOldStyle to be delay friendly 3061dc6ac9 add_custom_command: Add tests for rejecting literal quotes in commands e893ab94ba cmMakefile: Validate command line for all custom commands f1e846fdde cmMakefile: Extract custom command validation method 4926ab2454 cmMakefile: Create all generated byproducts as known sources Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3822
| * | | cmMakefile: Separate custom command setup from actual creationDaniel Eiband2019-09-171-51/+138
| | | | | | | | | | | | | | | | | | | | Refactor custom command manipulation functions to consist of a setup and a commit stage. The commit stage will be delayed to generate time.
| * | | cmMakefile: Refactor AddCustomCommandOldStyle to be delay friendlyDaniel Eiband2019-09-171-27/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Custom command functions consist of two parts: setup and commit. Only the commit part will be delayed to generate time. This change puts the commit part of AddCustomCommandOldStyle into a lambda. When delayed, it will not be possible to break the loop over the outputs if an error occurs which seems reasonable.
| * | | cmMakefile: Validate command line for all custom commandsDaniel Eiband2019-09-171-39/+53
| | | |
| * | | cmMakefile: Extract custom command validation methodDaniel Eiband2019-09-171-8/+19
| | | |
| * | | cmMakefile: Create all generated byproducts as known sourcesDaniel Eiband2019-09-171-5/+6
| | | |
* | | | Merge topic 'command-line-make-functions'Brad King2019-09-181-29/+0
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 9c45b95ddd cmMakefile: Remove unused AddUtilityCommand overload 7f3ecbe7d7 cmCustomCommandLine: Provide command line make functions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3819
| * | | cmMakefile: Remove unused AddUtilityCommand overloadDaniel Eiband2019-09-161-29/+0
| | | |
* | | | Merge topic 'smart_ptr/cmSourceFile'Brad King2019-09-171-2/+4
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 8c83f39a90 cmSourceFile: use unique_ptr for CustomCommand Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !3815
| * | | cmSourceFile: use unique_ptr for CustomCommandTushar Maheshwari2019-09-131-2/+4
| | | |
* | | | Merge topic 'tidy-deprecated-headers'Brad King2019-09-161-4/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f30523d090 clang-tidy: modernize-deprecated-headers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3792
| * | | | clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-161-4/+4
| | | | |
* | | | | Merge topic 'prepare-deferred-custom-command-creation'Brad King2019-09-161-6/+27
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5d28e361b7 add_custom_command: Move append functionality into class cmMakefile 4fb29850ad add_custom_command: Refactor setting implicit depends Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3810
| * | | | add_custom_command: Move append functionality into class cmMakefileDaniel Eiband2019-09-131-0/+17
| | | | |
| * | | | add_custom_command: Refactor setting implicit dependsDaniel Eiband2019-09-121-6/+10
| |/ / / | | | | | | | | | | | | | | | | Implicit dependencies are now passed as argument to AddCustomCommandToOutput. This is necessary to be able to delay custom command creation.
* | | | cmMakefile: Add lookup from source name to targets via byproductsDaniel Eiband2019-09-121-24/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given an output source name it is now possible to query which target has a byproduct of this name or has a PRE_BUILD, PRE_LINK, or POST_BUILD build event with a byproduct of this name. In a call to GetSourceFileWithOutput a matching byproduct can now optionally be returned as fallback if there is no matching output of a custom command. Default behavior is not changed by this commit.
* | | | Refatoring: Extract AnyOutputMatches utilityDaniel Eiband2019-09-121-15/+22
|/ / /
* | | Merge topic 'modernize-use-auto'Brad King2019-09-121-25/+18
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | d25a5a7ec9 clang-tidy: modernize-use-auto Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3783
| * | | clang-tidy: modernize-use-autoRegina Pfeifer2019-09-101-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | Set the MinTypeNameLength option to an impossibly high value in order to limit the diagnostics to iterators. Leave new expressions and cast expressions for later.
* | | | cmMakefile: set GENERATED property of outputs upfrontDaniel Eiband2019-09-061-28/+20
|/ / / | | | | | | | | | | | | | | | | | | Setting the GENERATED property of outputs upfront is a precondition for delayed custom command creation (generator expressions in outputs). Issue: 12877
* | | clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* | | clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-031-1/+1
| | |
* | | Merge topic 'add-non-empty-configurations-getter'Brad King2019-09-031-0/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 10507c6dc0 cmMakefile: Add configurations getter with empty configuration default Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3759
| * | | cmMakefile: Add configurations getter with empty configuration defaultDaniel Eiband2019-08-301-0/+10
| | | |
* | | | cmSourceFile: Rename mutating GetFullPath() overloadDaniel Eiband2019-08-291-2/+2
|/ / / | | | | | | | | | Rename mutating GetFullPath() overload to ResolveFullPath().
* | | Merge topic 'source_sweep_ostringstream_single'Brad King2019-08-261-14/+10
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 3b2b02825d Source sweep: Replace std::ostringstream when used with a single append Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3726
| * | | Source sweep: Replace std::ostringstream when used with a single appendSebastian Holtermann2019-08-231-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces `std::ostringstream`, when it is written to only once. If the single written argument was numeric, `std::to_string` is used instead. Otherwise, the single written argument is used directly instead of the `std::ostringstream::str()` invocation.
* | | | Source sweep: Replace cmExpandList with the shorter cmExpandedListSebastian Holtermann2019-08-231-28/+14
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the code pattern ``` std::vector<std::string> args; cmExpandList(valueStr, args, ...) ``` with ``` std::vector<std::string> args = cmExpandedList(valueStr, ...) ```
* | | Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-31/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)`