summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
Commit message (Collapse)AuthorAgeFilesLines
* add_library/add_executable: allow local alias to imported targetsMarc Chevrier2020-06-021-1/+2
| | | | Fixes: #20641
* Merge topic 'getdef-expand'Brad King2020-06-021-0/+2
|\ | | | | | | | | | | | | 7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4819
| * cmMakefile: add GetDefExpandList() that splits value into std::vectorVitaly Stakhovsky2020-05-301-0/+2
| | | | | | | | Combines cmMakefile:GetDefinition() and cmExpandList()
* | Single location for cmProp typedefVitaly Stakhovsky2020-06-011-2/+1
|/
* Add support to indicate UTF-8 custom command pipe output encodingJustin Goshi2020-04-131-4/+8
| | | | | | | | | | | | | | | | | Adds a flag to indicate that pipe output from a custom command should be interpreted as UTF-8 encoded. This change does not introduce a public way to set the flag, but generators that create internally-generated commands know if they are calling cmake, which uses UTF-8 pipes. MSBuild added support for interpreting output of PreBuildEvent, PreLinkEvent, PostBuildEvent, and CustomBuildStep as UTF-8. This change will appear in Visual Studio 16.6 Preview 3. It is opt-in, and you need to add the StdOutEncoding tag. MSBuild treats these as property bags so if we emit the tag for earlier versions of Visual Studio it would be safely ignored. This change emits the StdOutEncoding tag and sets it to UTF-8 whenever the custom command UTF-8 pipe flag is set. This fixes globalization issues when the output from cmake contained characters that required MSBuild to interpret as UTF-8 before displaying them.
* cmMakefile::GetProperty: return cmPropVitaly Stakhovsky2020-04-011-3/+6
|
* 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.