summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionNode.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'genex-TARGET_FILE_BASE_NAME-manage-postfix'Brad King2019-05-031-3/+6
|\ | | | | | | | | | | | | | | 6e5ccabe9b Genex: Update $<TARGET_FILE_BASE_NAME:...>: take care of POSTFIX 1f4c9aa7d2 Refactor: introduce method cmGeneratorTarget::GetFilePostfix Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3267
| * Genex: Update $<TARGET_FILE_BASE_NAME:...>: take care of POSTFIXMarc Chevrier2019-05-021-3/+6
| | | | | | | | | | This capability complement MR !3190 and !3207 and is also needed to solve issue #18771.
* | Merge topic 'genex-code-cleanup'Brad King2019-05-021-416/+175
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | 3d856eba16 cmGeneratorExpressionNode: refactor TargetPropertyNode 9e1df5df54 cmGeneratorExpressionNode: use ctor arguments instead of macro 36f36d6a49 cmGeneratorExpressionNode: add VersionNode 3f57787dff cmGeneratorExpressionNode: remove structs CompilerId*, CompilerVersion* 20d7c5631e cmGeneratorExpressionNode: add CharacterNode abd62201bd cmGeneratorExpressionNode: simplify code in EqualNode f2c8ff8259 cmGeneratorExpressionNode: Simplify static string constant Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3234
| * cmGeneratorExpressionNode: refactor TargetPropertyNodeLeonid Pospelov2019-04-221-48/+49
| | | | | | | | | | Re-order logic to improve readability and de-duplicate conditions. Factor out error message generation into a helper.
| * cmGeneratorExpressionNode: use ctor arguments instead of macroLeonid Pospelov2019-04-221-30/+36
| |
| * cmGeneratorExpressionNode: add VersionNodeLeonid Pospelov2019-04-221-84/+10
| |
| * cmGeneratorExpressionNode: remove structs CompilerId*, CompilerVersion*Leonid Pospelov2019-04-221-166/+43
| |
| * cmGeneratorExpressionNode: add CharacterNodeLeonid Pospelov2019-04-221-36/+8
| |
| * cmGeneratorExpressionNode: simplify code in EqualNodeLeonid Pospelov2019-04-221-54/+29
| |
| * cmGeneratorExpressionNode: Simplify static string constantBrad King2019-04-221-2/+4
| | | | | | | | | | Use our `""_s` user-defined literal to avoid initializing a static std::string.
* | Merge topic 'relax_TARGET_OBJECT_generator_expr'Brad King2019-04-301-2/+8
|\ \ | | | | | | | | | | | | | | | | | | ce078dda79 Relax the usage of TARGET_OBJECTS generator expression Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3178
| * | Relax the usage of TARGET_OBJECTS generator expressionRobert Maynard2019-04-191-2/+8
| | | | | | | | | | | | | | | The geneator expression can now be used with static, shared, and module libraries and executables.
* | | Genex: Rename $<TARGET_*_OUTPUT_NAME:...> in $<TARGET_*_FILE_BASE_NAME:...>Marc Chevrier2019-04-151-16/+16
| |/ |/|
* | Genex: add $<TARGET_FILE_PREFIX:...> and $<TARGET_FILE_SUFFIX:...>Marc Chevrier2019-04-101-0/+117
| | | | | | | | | | These capabilities complement MR !3190 and is also needed to solve issue #18771.
* | Genex: Add $<FILTER:list,INCLUDE|EXCLUDE,regex>Sebastian Lipponer2019-04-081-0/+47
| |
* | Genex: Add capability to retrieve base name for various target artifactsMarc Chevrier2019-04-081-0/+123
| | | | | | | | This new capability is required to solve efficiently issue #18771
* | Refactor struct TargetFileSystemArtifactMarc Chevrier2019-04-081-10/+31
| | | | | | | | | | Creates base class TargetArtifactBase which enable to share code with future new functionalities.
* | Genex: Add $<REMOVE_DUPLICATES:list>Sebastian Lipponer2019-04-011-0/+30
|/
* Merge topic 'cuda_compiler_generator_expressions'Brad King2019-03-131-2/+48
|\ | | | | | | | | | | | | | | b53766b205 CUDA: Support compiler id and version generator expressions b544e34af6 All VersionNode use the same capitalization pattern Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3085
| * CUDA: Support compiler id and version generator expressionsRobert Maynard2019-03-111-0/+46
| | | | | | | | | | Introduce the CUDA_COMPILER_ID and CUDA_COMPILER_VERSION generator expressions.
| * All VersionNode use the same capitalization patternRobert Maynard2019-03-111-2/+2
| |
* | Genex: Teach SHELL_PATH to support a list of pathsHenri Manson2019-03-111-4/+20
|/ | | | | | | Extend the genex added by commit ca6ba3fee5 (Genex: Add a SHELL_PATH expression, 2015-09-24, v3.4.0-rc1~37^2) to accept a `;`-list of paths, convert them all, and generate a list separated by the native shell `PATH``` separator.
* cmGeneratorExpressionNode: Initialize node key map in class constructorSebastian Holtermann2019-02-271-68/+69
| | | | | By initializing the node map in the class constructor of the static instance we avoid an if-empty check.
* Merge topic 'genex-GENEX_EVAL-fix-recursion'Brad King2019-02-131-2/+2
|\ | | | | | | | | | | | | | | e429e9af42 genex: Fix erroneous handling of recursion for $<GENEX_EVAL:> Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: yrHeTaTeJlb <jjj.bo@yandex.ru> Merge-request: !2954
| * genex: Fix erroneous handling of recursion for $<GENEX_EVAL:>Marc Chevrier2019-02-131-2/+2
| | | | | | | | Fixes: #18894
* | Modernize: Use ranged for-loops when possibleArtur Ryt2019-02-071-5/+3
| | | | | | | | | | | | | | Replaced most manual `const_iterator`-based loops and some reverse-iterator loops with range loops. Fixes: #18858
* | Prefer front/back/data over dereferencing begin/rbegin iterArtur Ryt2019-02-061-16/+16
|/ | | | Changed for sequenced containers: vector, list, string and array
* clang-tidy: Silence use-equals-default warningRegina Pfeifer2019-01-301-1/+1
| | | | | | clang-tidy 7 has an option to suppress this warning in macros which defaults to '1'. Set the option to '0' and silence the warning explicitly.
* clang-tidy: Use `= default`Regina Pfeifer2019-01-251-47/+49
| | | | | | Suppress some cases in `Source/cmGeneratorExpressionNode.cxx` and `Source/cmUVHandlePtr.h` where a few older compilers require a user-defined default constructor (with `{}`).
* Fortran: Add compiler ID/Version generator expressionsAndrew Paprocki2019-01-181-0/+46
| | | | | | | | | | | | Adds `Fortran_COMPILER_ID` and `Fortran_COMPILER_VERSION` generator expression support to match equivalent `C_COMPILER_ID`, `CXX_COMPILER_ID`, `C_COMPILER_VERSION`, and `CXX_COMPILER_VERSION` support. This is very helpful in the case where the C/C++ compiler suite is a different type of compiler from the platform Fortran compiler and projects use generator expressions to assign compiler flags and definitions. (e.g. `GNU` C/C++ and `SunPro` Fortran on Linux)
* Factor out enum MessageType into dedicated headerBruno Manganelli2019-01-161-5/+6
| | | | Reduce the number of files relying on `cmake.h`.
* clang-tidy: Simplify boolean expressionsRegina Pfeifer2019-01-151-1/+1
|
* Genex: Add policy to handle empty list items in $<IN_LIST:...>Kyle Edwards2018-11-191-5/+30
| | | | | | | | | | The old behavior of $<IN_LIST:...> is inconsistent with that of if(IN_LIST), in that it does not find an empty search item even if the list contains empty items. This change adds a new policy to correctly handle empty items and make the behavior more consistent with if(IN_LIST). Fixes: #18556
* INTERFACE_POSITION_INDEPENDENT_CODE: add generator expressions supportMarc Chevrier2018-11-081-1/+2
| | | | Fixes: #16532
* Merge topic 'getsafedef-stdstring'Brad King2018-09-181-14/+16
|\ | | | | | | | | | | | | f4ff60a803 cmMakefile: Make GetSafeDefinition return std::string const& Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2350
| * cmMakefile: Make GetSafeDefinition return std::string const&Vitaly Stakhovsky2018-09-181-14/+16
| |
* | Make internal TARGET_PROPERTY generator expressions more robustBrad King2018-09-121-1/+3
|/ | | | | | | | | | | | | While collecting usage requirements from the `INTERFACE_*` properties of directly linked targets, we internally generate `TARGET_PROPERTY:` and `TARGET_OBJECTS:` generator expressions to refer to those properties on those targets. At the point we generate these expressions we already have a pointer to an exact `cmGeneratorTarget` instance. Switch from using the target name in these generator expressions to using an internal unique name generated for each `cmGeneratorTarget` instance to be referenced. This avoids depending on the user-facing target name to find the same target we already have.
* Fix transitive usage requirements through same-name imported targetsBrad King2018-09-101-7/+6
| | | | | | | | | | If two imported targets in different directories have the same name we should still be able to propagate transitive usage requirements from both. Fix the DAG checker to work with target pointers instead of target names since the pointers will not be duplicated even if the names are. Fixes: #18345
* Remove unnecessary c_str() callsVitaly Stakhovsky2018-09-051-1/+1
| | | | Use the new IsOn(),IsOff() overloads.
* Remove unnecessary c_str() in RegularExpression::find callsVitaly Stakhovsky2018-08-071-1/+1
|
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-8/+11
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Genex: Allow COMPILE_LANGUAGE to name a language that is not loadedHenry Schreiner2018-05-031-9/+0
| | | | | | | | Evaluate to false on `$<COMPILE_LANGUAGE:Lang>` if language `Lang` is not loaded. This is helpful in exported targets consumed in other projects that may not enable all the same languages. Fixes: #17952
* Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>Marc Chevrier2018-04-231-1/+112
| | | | Fixes: #17884
* cmGeneratorTarget: Make import library checks config-awareMichael Stürmer2018-04-051-1/+2
|
* genex: Add TARGET_NAME_IF_EXISTS expressionAlex Turbov2018-03-281-0/+35
| | | | | Define `$<TARGET_NAME_IF_EXISTS:tgt>` to mean `tgt` if the target exists and otherwise an empty string.
* genex: Add TARGET_EXISTS to check for target existenceAlex Turbov2018-03-091-0/+32
| | | | | Define `$<TARGET_EXISTS:a>` to `1` if `a` is an existed target name, else `0`.
* Genex: Add IN_LIST logical operatorMarc Chevrier2018-02-071-0/+26
| | | | Implements #17679
* Merge topic 'std-string-apis'Brad King2018-02-011-2/+1
|\ | | | | | | | | | | | | 653b8946 Reduce raw string pointers usage. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1729
| * Reduce raw string pointers usage.Pavel Solodovnikov2018-01-311-2/+1
| | | | | | | | | | | | | | | | | | | | * Change some functions to take `std::string` instead of `const char*` in the following classes: `cmMakeFile`, `cmake`, `cmCoreTryCompile`, `cmSystemTools`, `cmState`, `cmLocalGenerator` and a few others. * Greatly reduce using of `const char*` overloads for `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`. * Remove many redundant `c_str()` conversions throughout the code.
* | cmGeneratorExpressionNode: avoid some strlen in $<TARGET_PROPERTY>Ben Boeckel2018-01-311-1/+2
|/