summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'export-repeat'Brad King2020-03-201-4/+6
|\ | | | | | | | | | | | | 8affe9aa33 export: Fix use-after-free on multiple calls overwriting same FILE Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4494
| * export: Fix use-after-free on multiple calls overwriting same FILEBrad King2020-03-191-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMake 3.16 and below allow multiple `export()` calls with the same output file even without using `APPEND`. The implementation worked by accident by leaking memory. Refactoring in commit 5444a8095d (cmGlobalGenerator: modernize memrory managemenbt, 2019-12-29, v3.17.0-rc1~239^2) cleaned up that memory leak and converted it to a use-after-free instead. The problem is caused by using the `cmGlobalGenerator::BuildExportSets` map to own `cmExportBuildFileGenerator` instances. It can own only one instance per output FILE name at a time, so repeating use of the same file now frees the old `cmExportBuildFileGenerator` instance and leaves the pointer in the `cmMakefile::ExportBuildFileGenerators` vector dangling. Move ownership of the instances into `cmMakefile`'s vector since its entries are not replaced on a repeat output FILE. In future work we should introduce a policy to error out on this case. For now simply fix the use-after-free to restore CMake <= 3.16 behavior. Fixes: #20469
* | cmMakefile::AddCacheDefinition: Add overload that accepts std::string valueVitaly Stakhovsky2020-03-111-0/+6
| |
* | cmake_command: Add command to EVAL a CMake script as a stringCristian Adam2020-03-031-0/+3
|/
* Source: use std::string in place of const char*Vitaly Stakhovsky2020-01-291-2/+2
|
* Merge topic 'mf-typo'Brad King2020-01-281-1/+1
|\ | | | | | | | | | | | | 7b6af980eb cmMakefile: Fix spelling typo in comment Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4292
| * cmMakefile: Fix spelling typo in commentMasashi Fujita2020-01-281-1/+1
| |
* | AppendProperty: convert value param to std::stringVitaly Stakhovsky2020-01-251-1/+1
|/
* cmMakefile: modernize memory managementMarc Chevrier2020-01-141-26/+22
|
* find_*: Add debug logging infrastructureRobert Maynard2019-12-191-2/+13
| | | | | | | | | | | | Enable debug messages a new `--find-debug` command-line option or via the `CMAKE_FIND_DEBUG_MODE` variable. This work was started by Chris Wilson, continued by Ray Donnelly, and then refactored by Robert Maynard to collect information into a single message per find query. Co-Author: Ray Donnelly <mingw.android@gmail.com> Co-Author: Chris Wilson <chris+github@qwirx.com>
* CUDA: Add cuda meta-features (e.g. ``cuda_std_11``) supportRobert Maynard2019-12-101-1/+11
|
* cmMakefile: Delay custom command creationDaniel Eiband2019-11-241-45/+32
| | | | | | | | 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
* cmMakefile: Explicitly pass backtrace to GetCustomCommandTargetDaniel Eiband2019-11-241-2/+3
| | | | | Allow GetCustomCommandTarget to be called at generate time with correct backtraces.
* cmMakefile: Delay CheckTargetProperties and FinalPass to generate timeDaniel Eiband2019-11-241-12/+13
|
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-1/+2
| | | | | 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 'objective-c-cxx'Brad King2019-09-301-4/+10
|\ | | | | | | | | | | | | | | | | | | 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-4/+10
| |
* | cmMakefile: Remove AddUtilityCommand overload without byproductsDaniel Eiband2019-09-261-7/+0
| |
* | cmMakefile: Extract utilities used for creation of custom commandsDaniel Eiband2019-09-261-13/+39
| | | | | | | | Decompose creation of custom commands further into logical steps.
* | cmMakefile: Move enumerations into new headerDaniel Eiband2019-09-261-22/+14
|/ | | | The enumerations will also be used in cmLocalGenerator.
* Merge topic 'cmake-system-headers'Brad King2019-09-201-1/+1
|\ | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 'split-custom-command-creation'Brad King2019-09-201-8/+46
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 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-5/+43
| | | | | | | | | | Refactor custom command manipulation functions to consist of a setup and a commit stage. The commit stage will be delayed to generate time.
| * cmMakefile: Validate command line for all custom commandsDaniel Eiband2019-09-171-1/+1
| |
| * cmMakefile: Extract custom command validation methodDaniel Eiband2019-09-171-0/+2
| |
| * cmMakefile: Create all generated byproducts as known sourcesDaniel Eiband2019-09-171-3/+1
| |
* | cmMakefile: Remove unused AddUtilityCommand overloadDaniel Eiband2019-09-161-8/+0
|/
* Merge topic 'tidy-deprecated-headers'Brad King2019-09-161-1/+1
|\ | | | | | | | | | | | | f30523d090 clang-tidy: modernize-deprecated-headers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3792
| * clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-161-1/+1
| |
* | Merge topic 'prepare-deferred-custom-command-creation'Brad King2019-09-161-0/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | 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/+4
| | |
| * | add_custom_command: Refactor setting implicit dependsDaniel Eiband2019-09-121-0/+2
| |/ | | | | | | | | 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-12/+58
|/ | | | | | | | | | | 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.
* cmMakefile: set GENERATED property of outputs upfrontDaniel Eiband2019-09-061-0/+5
| | | | | | | 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-031-5/+5
|
* cmMakefile: Add configurations getter with empty configuration defaultDaniel Eiband2019-08-301-0/+3
|
* cmCommand refactor: cmCMakePolicyCommandGabor Bencze2019-08-201-1/+2
|
* Refactor: Convert all instances of CMAKE_BUILD_WITH_CMAKE to CMAKE_BOOTSTRAPKitware Robot2019-08-091-4/+4
|
* cmFunctionBlocker: Move check for matching argsRegina Pfeifer2019-07-301-2/+1
|
* cmMakefile: Add OnExecuteCommand callbackRegina Pfeifer2019-07-301-0/+6
| | | | | In cmCTestScriptHandler, port away from cmFunctionBlocker and update the elapsed time with the new callback instead.
* Merge topic 'cmStringAlgorithms'Kyle Edwards2019-07-301-0/+1
|\ | | | | | | | | | | | | f71f7ce3f0 cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.h Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3618
| * cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.hSebastian Holtermann2019-07-291-0/+1
| | | | | | | | | | This adds the `cmStringAlgorithms.h` header and moves all string functions from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
* | cmMakefile: Keep function blockers in a stackRegina Pfeifer2019-07-261-2/+4
|/ | | | Highlight the fact that we only ever operate on the top element.
* cmMakefile: Let AddDefinition accept a value as cm::string_viewSebastian Holtermann2019-07-241-2/+4
| | | | | | | | | | | | | | | | 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.
* cmMakefile: Simplify and rename AddDefinitionBoolSebastian Holtermann2019-07-241-5/+4
| | | | | | | This simplifies the `cmMakefile::AddDefinition` method with bool value overload to call the string based `cmMakefile::AddDefinition` method with either an "ON" or "OFF" string. Also the method is renamed to `cmMakefile::AddDefinitionBool`
* Merge topic 'command-final-action'Brad King2019-07-191-3/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 732dd344b9 cmCommand: remove FinalPass from interface fbee46e262 cmVariableWatchCommand: Port away from FinalPass 360d415592 cmLoadCommandCommand: Port away from FinalPass 316e40baec cmInstallProgramsCommand: Port away from FinalPass 7bc88b9165 cmInstallFilesCommand: Port away from FinalPass 6a1a3763ee cmFLTKWrapUICommand: Port away from FinalPass 20169f0b8d cmExportLibraryDependenciesCommand: Port away from FinalPass a74dad3bd3 cmMakefile: decouple FinalAction from cmCommand ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3562
| * cmMakefile: decouple FinalAction from cmCommandDaniel Pfeifer2019-07-181-3/+10
| |
* | cmMakefile: Modernize AddFunctionBlocker method to accept a std::unique_ptrSebastian Holtermann2019-07-171-3/+3
|/
* modernize: manage cmCommand instances using unique_ptr.Marc Chevrier2019-07-141-1/+1
|