summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* cm*FunctionBlocker: Move to source fileRegina Pfeifer2019-07-3010-90/+85
|
* Merge topic 'cmStringAlgorithms'Kyle Edwards2019-07-3078-165/+216
|\ | | | | | | | | | | | | 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-2978-165/+216
| | | | | | | | | | This adds the `cmStringAlgorithms.h` header and moves all string functions from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
* | Merge topic 'function-blocker-stack'Kyle Edwards2019-07-302-46/+30
|\ \ | | | | | | | | | | | | | | | | | | 020478dbea cmMakefile: Keep function blockers in a stack Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3613
| * | cmMakefile: Keep function blockers in a stackRegina Pfeifer2019-07-262-46/+30
| | | | | | | | | | | | Highlight the fact that we only ever operate on the top element.
* | | Merge topic 'cmake-version'Craig Scott2019-07-305-74/+94
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fe2c558ba6 CMakeVersion: Preserve Git information during 'git archive' 0505a66cbf CMakeVersion: Add generic '-git' suffix when no git info is available f7bf08754b CMakeVersion: Provide Git information in non-exact release versions ac48259333 CMakeVersion: Re-order logic to obviate addition of each component 311f232f7a CMakeVersion: De-duplicate variable initialization 2f608566b4 CMakeVersion: Factor git execution into helper macro 74ff80323c CMakeVersion: Use FindGit module to find Git e1e7986c00 CMakeVersion: Consider Git even with just a `.git` file ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3622
| * | | CMakeVersion: Preserve Git information during 'git archive'Brad King2019-07-292-0/+5
| | | | | | | | | | | | | | | | | | | | Use `export-subst` to get information about the Git commit used to produce an archive.
| * | | CMakeVersion: Add generic '-git' suffix when no git info is availableBrad King2019-07-291-0/+6
| | | |
| * | | CMakeVersion: Provide Git information in non-exact release versionsBrad King2019-07-291-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | Our exact release commits have a subject of the form `CMake <version>`. Distinguish development on a release branch in commits after such a version but before the next release by providing Git information.
| * | | CMakeVersion: Re-order logic to obviate addition of each componentBrad King2019-07-291-16/+19
| | | |
| * | | CMakeVersion: De-duplicate variable initializationBrad King2019-07-291-4/+2
| | | |
| * | | CMakeVersion: Factor git execution into helper macroBrad King2019-07-291-24/+23
| | | |
| * | | CMakeVersion: Use FindGit module to find GitBrad King2019-07-291-3/+2
| | | | | | | | | | | | | | | | | | | | We now require at least CMake 3.1 to build, and that has the FindGit module.
| * | | CMakeVersion: Consider Git even with just a `.git` fileBrad King2019-07-291-1/+1
| | | |
| * | | CMakeVersion: Move git logic to main scriptBrad King2019-07-292-32/+31
| | | |
| * | | CMakeVersion: Move computation logic to main scriptBrad King2019-07-292-29/+27
| | | |
| * | | CMakeVersion.rc: Compute resource components only on WindowsBrad King2019-07-292-15/+15
| |/ /
* | | CMake Nightly Date StampKitware Robot2019-07-301-1/+1
| |/ |/|
* | Merge topic 'modernize_string_view_cmOutputConverter'Brad King2019-07-294-126/+138
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ec892a572b cmOutputConverter: Make shell escaping methods cm::string_view based 8573e20c43 cmOutputConverter: Let GetFortranFormat accept a cm::string_view 4911762358 cmOutputConverter: Return bool instead of int in utility functions a929255dec cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_view 1b30b28c04 cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_view 6675f785be cmOutputConverter: Let EscapeForCMake accept a cm::string_view 09977c1816 cmSystemTool: Let TrimWhitespace accept a cm::string_view 2f19e53705 cmSystemTool: Let HelpFileName accept a cm::string_view ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3615
| * | cmOutputConverter: Make shell escaping methods cm::string_view basedSebastian Holtermann2019-07-282-63/+62
| | |
| * | cmOutputConverter: Let GetFortranFormat accept a cm::string_viewSebastian Holtermann2019-07-282-5/+13
| | |
| * | cmOutputConverter: Return bool instead of int in utility functionsSebastian Holtermann2019-07-282-18/+18
| | |
| * | cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_viewSebastian Holtermann2019-07-282-4/+3
| | |
| * | cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_viewSebastian Holtermann2019-07-281-2/+2
| | |
| * | cmOutputConverter: Let EscapeForCMake accept a cm::string_viewSebastian Holtermann2019-07-282-9/+10
| | |
| * | cmSystemTool: Let TrimWhitespace accept a cm::string_viewSebastian Holtermann2019-07-282-7/+7
| | |
| * | cmSystemTool: Let HelpFileName accept a cm::string_viewSebastian Holtermann2019-07-282-2/+3
| | |
| * | cmSystemTool: Let EscapeQuotes accept a cm::string_viewSebastian Holtermann2019-07-282-5/+5
| | |
| * | cmSystemTool: Let Expand(ed)ListArgument accept a cm::string_viewSebastian Holtermann2019-07-282-15/+19
| | |
* | | CMake Nightly Date StampKitware Robot2019-07-291-1/+1
|/ /
* | CMake Nightly Date StampKitware Robot2019-07-281-1/+1
| |
* | CMake Nightly Date StampKitware Robot2019-07-271-1/+1
|/
* Merge topic 'cmake-version-rc'Brad King2019-07-262-2/+2
|\ | | | | | | | | | | | | eb5ea5a505 CMakeVersion: Use '-rc0' version suffix on release branches prior to rc1 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3609
| * CMakeVersion: Use '-rc0' version suffix on release branches prior to rc1Brad King2019-07-262-2/+2
| | | | | | | | | | | | | | | | | | | | Revert the change from commit 7b354baad5 (CMakeVersion: Set CMake_VERSION_RC to 0 even in non-rc versions, 2019-07-25) and instead define a `0` value in `CMake_VERSION_RC` to mean `-rc0`. This distinguishes release branch versions prior to the first release candidate from the first release candidate itself. It also makes room for a dedicated "CMake $major.$minor.0-rc1" release commit for `-rc1` as we have for later release candidates and final releases.
* | Merge topic 'ep_support_no_submodule_init'Kyle Edwards2019-07-261-1/+5
|\ \ | | | | | | | | | | | | | | | | | | d6be117ca0 ExternalProject: Support not initializing any submodules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3579
| * | ExternalProject: Support not initializing any submodulesRobert Maynard2019-07-241-1/+5
| | | | | | | | | | | | Fixes #15592
* | | Merge topic 'remove_compiler_rpath'Kyle Edwards2019-07-265-5/+22
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | bd2793b6e9 Help: Add documentation for INSTALL_REMOVE_ENVIROMENT_RPATH f08dcbffec Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH property Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3544
| * | Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH propertyJiang Yue2019-07-255-5/+22
| | |
* | | Merge topic 'optimize-usage-requirements'Brad King2019-07-264-137/+231
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1d3841b600 Genex: Memoize usage requirement TARGET_PROPERTY existence b5460f9931 cmLinkItem: Expose HadHeadSensitiveCondition in cmLinkInterfaceLibraries ad2b3a32d1 Genex: Optimize build setting TARGET_PROPERTY evaluation 11fa818ecd Genex: Optimize usage requirement TARGET_PROPERTY recursion 0239bf8ac8 Genex: In TARGET_PROPERTY check for usage reqs in link libs earlier 7caebeb0e4 Genex: Re-order TARGET_PROPERTY logic to de-duplicate checks b2785a0fbd Genex: Move TARGET_PROPERTY linked targets evaluation to end Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Cristian Adam <cristian.adam@gmail.com> Merge-request: !3589
| * | | Genex: Memoize usage requirement TARGET_PROPERTY existenceBrad King2019-07-232-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For each usage requirement (such as `INTERFACE_COMPILE_DEFINITIONS` or `INTERFACE_INCLUDE_DIRECTORIES`), the value of the generator expression `$<TARGET_PROPERTY:target,prop>` includes the values of the same property from the transitive closure of link libraries of the target. In cases that a target's transitive closure of dependencies does not depend on the target being linked (the "head" target), we can memoize whether or not a usage requirement property exists at all for that target. When a usage requirement does not exist for a target, we can skip evaluating it for every consuming target. Fixes: #18964, #18965
| * | | cmLinkItem: Expose HadHeadSensitiveCondition in cmLinkInterfaceLibrariesBrad King2019-07-231-1/+3
| | | | | | | | | | | | | | | | | | | | Clients may be able to avoid repeating work if they know the transitive link interface libraries do not depend on what is linking them.
| * | | Genex: Optimize build setting TARGET_PROPERTY evaluationBrad King2019-07-232-54/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For each build setting property (such as `COMPILE_DEFINITIONS` or `INCLUDE_DIRECTORIES`), the value of `$<TARGET_PROPERTY:target,prop>` includes the values of the corresponding `INTERFACE_*` usage requirement property from the transitive closure of link libraries of the target. Previously we computed this by constructing a generator expression string like `$<TARGET_PROPERTY:lib,INTERFACE_COMPILE_DEFINITIONS>` and recursively evaluating it with the generator expression engine. Avoid the string construction and parsing by using the dedicated evaluation method `cmGeneratorTarget::EvaluateInterfaceProperty`. Issue: #18964, #18965
| * | | Genex: Optimize usage requirement TARGET_PROPERTY recursionBrad King2019-07-233-22/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In large projects the generation process spends a lot of time evaluating usage requirements through transitive interface properties on targets. This can be seen in a contrived example with deep dependencies: set(prev "") foreach(i RANGE 1 500) add_library(a${i} a.c) target_compile_definitions(a${i} PUBLIC A${i}) target_link_libraries(a${i} PUBLIC ${prev}) set(prev a${i}) endforeach() For each usage requirement (such as `INTERFACE_COMPILE_DEFINITIONS` or `INTERFACE_INCLUDE_DIRECTORIES`), the value of the generator expression `$<TARGET_PROPERTY:target,prop>` includes the values of the same property from the transitive closure of link libraries of the target. Previously we computed this by constructing a generator expression string like `$<TARGET_PROPERTY:lib,INTERFACE_COMPILE_DEFINITIONS>` and recursively evaluating it with the generator expression engine. Avoid the string construction and parsing by creating and using a dedicated evaluation method `cmGeneratorTarget::EvaluateInterfaceProperty` that looks up the properties directly. Issue: #18964, #18965
| * | | Genex: In TARGET_PROPERTY check for usage reqs in link libs earlierBrad King2019-07-211-25/+26
| | | |
| * | | Genex: Re-order TARGET_PROPERTY logic to de-duplicate checksBrad King2019-07-211-42/+26
| | | | | | | | | | | | | | | | | | | | Check for usage requirement properties early enough to avoid duplicate checks in other conditions.
| * | | Genex: Move TARGET_PROPERTY linked targets evaluation to endBrad King2019-07-211-35/+28
| | | |
* | | | Merge topic 'definitions_string_view'Brad King2019-07-2663-314/+281
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e91bfe440c cmMakefile: Let AddDefinition accept a value as cm::string_view f2ba968ef2 cmMakefile: Simplify and rename AddDefinitionBool 9b5cc42531 cmDefinitions: Remove const char* based Set method e268840c0a cmDefinitions: Add Unset and cm::string_view based Set methods 451fd329a8 cmDefinitions: Cleanups Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3577
| * | | | cmMakefile: Let AddDefinition accept a value as cm::string_viewSebastian Holtermann2019-07-2456-256/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-246-26/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`
| * | | | cmDefinitions: Remove const char* based Set methodSebastian Holtermann2019-07-244-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Removes `cmDefinitions::Set` method overload that takes a `const char*` value argument. - Updates calls to `cmDefinitions::Set` to use the `cm::string_view` based version instead.