summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionNode.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'genexp-no-eval'Brad King2023-09-261-0/+17
|\ | | | | | | | | | | | | | | | | 634079b86d cmGeneratorExpressionEvaluator: Short-circuit boolean operators Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: scivision <michael@scivision.dev> Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com> Merge-request: !8791
| * cmGeneratorExpressionEvaluator: Short-circuit boolean operatorsMartin Duffy2023-09-131-0/+17
| |
* | Merge topic 'cmList-INSERT-regression'Brad King2023-08-191-1/+3
|\ \ | |/ |/| | | | | | | | | | | 45ed175f08 list(INSERT): restore old behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8732
| * list(INSERT): restore old behaviorMarc Chevrier2023-08-171-1/+3
| | | | | | | | Fixes: #25191
* | Merge topic 'genex-REMOVE_DUPLICATES-empty'Brad King2023-07-131-1/+3
|\ \ | |/ | | | | | | | | | | | | 861dd60ecf Genex: Restore REMOVE_DUPLICATES preservation of empty elements Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8623
| * Genex: Restore REMOVE_DUPLICATES preservation of empty elementsBrad King2023-07-121-1/+3
| | | | | | | | | | | | | | | | | | Refactoring in commit 72d116ee68 (GenEx: list oriented genexes use cmList class, 2023-03-29, v3.27.0-rc1~205^2) accidentally caused empty elements to be dropped by the `REMOVE_DUPLICATES` genex. Fix it and add a test case. Fixes: #25080
* | cmList: Add container conversion to stringMarc Chevrier2023-06-221-7/+7
|/
* Merge topic 'compile-only-genex'Brad King2023-05-051-1/+24
|\ | | | | | | | | | | | | | | | | c42630ee62 cmGeneratorExpressionNode: implement `COMPILE_ONLY` genex 0fb923c460 cmGeneratorExpressionNode: implement `COMPILE_ONLY` genex Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8411
| * cmGeneratorExpressionNode: implement `COMPILE_ONLY` genexRobert Maynard2023-05-041-5/+3
| | | | | | | | | | | | | | | | | | This generator expression is the inverse of `LINK_ONLY` and only coveys usage requirements for the purposes of compilation. Its intended use is to avoid needing to export targets that do not have link usage requirements (e.g., header-only libraries) when used by another target. See: #15415
| * cmGeneratorExpressionNode: implement `COMPILE_ONLY` genexBen Boeckel2023-04-121-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This generator expression is the inverse of `LINK_ONLY` and only coveys usage requirements for the purposes of compilation. Its intended use is to avoid needing to export targets that do not have link usage requirements (e.g., header-only libraries) when used by another target. It will also be used to represent private usage requirements on exported C++ module-containing targets in the future. Eventually there should be logic to collapse nesting of `$<COMPILE_ONLY>` and `$<LINK_ONLY>` when generating instances of either. A TODO is left in the code for this case. See: #15415
* | CMake code rely on cmList class for CMake lists management (part. 2)Marc Chevrier2023-04-291-14/+10
| |
* | cmList class: various enhancementsMarc Chevrier2023-04-291-11/+16
| |
* | CMake code rely on cmList class for CMake lists management (part. 1)Marc Chevrier2023-04-241-3/+3
| |
* | GenEx LIST: list operationsMarc Chevrier2023-04-161-10/+705
|/ | | | Fixes: #24550, #24547
* GenEx: list oriented genexes use cmList classMarc Chevrier2023-04-051-28/+17
| | | | Fixes: #24654
* Merge topic 'TargetRunTimeDllDirs'Kyle Edwards2023-03-021-10/+46
|\ | | | | | | | | | | | | | | | | | | | | | | | | a2c9c4f202 Add test for the new TARGET_RUNTIME_DLL_PATHS genex aa68de0a27 TARGET_RUNTIME_DLLS: minor refactoring of shared-check.cmake 2ce3d62ffb Help: add documentation for the new TARGET_RUNTIME_DLL_DIRS genex c351dcd967 TARGET_RUNTIME_DLL_DIRS: add the new genex to cmGeneratorExpressionNode 064c3244da TARGET_RUNTIME_DLLS: fix test for this genex Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !8247
| * TARGET_RUNTIME_DLL_DIRS: add the new genex to cmGeneratorExpressionNodeAlexander Neundorf2023-02-261-10/+46
| | | | | | | | | | | | | | | | | | This commit adds handling for a new genex TARGET_RUNTIME_DLL_DIRS to cmGeneratorExpressionNode. It refactors the code for TARGET_RUNTIME_DLLS a bit, so that both TARGET_RUNTIME_DLL_DIRS and TARGET_RUNTIME_DLLS share the implementation to collect all dlls. The new genex collects the dlls and in a final step puts all the directories into the result variable (and makes sure there are no duplicates).
* | Apple: Handle generation and comsuption of text-based stubs (.tbd files)Marc Chevrier2023-03-011-8/+362
| | | | | | | | Fixes: #24123
* | PATH-genex: handle lists for path decomposition and transformationsMarc Chevrier2023-02-211-67/+132
|/ | | | Fixes: #24371
* GHS: Enable language-dependent generator expressionsNeal Venditto2023-02-181-4/+8
| | | | | | | | | Add `Green Hills MULTI` to the list of generators checked for the `COMPILE_LANGUAGE`, `COMPILE_LANG_AND_ID`, `LINK_LANGUAGE`, and `LINK_LANG_AND_ID` generator expressions, since these are supported by the generator. Fixes: #24262
* <LANG>_LINKER_LAUNCHER: Allow generator expressionsKyle Edwards2023-02-021-3/+6
|
* Genex: $<CONFIG:> syntax of all entries checkedRobert Maynard2023-01-201-3/+21
| | | | Fixes #24327
* Genex: Fix CONFIG on imported target with no explicit mappingLuis Caro Campos2022-12-161-0/+8
| | | | | | | | | When evaluating the `$<CONFIG>` genex on an imported target has the `IMPORTED_CONFIGURATIONS` property set, the current project has a config that does not match any of those, and no explicit configuration mappings are defined, fall back to the same configuration as `IMPORTED_LOCATION`. Fixes: #24222
* Merge topic 'build-local-interface-genex'Brad King2022-11-181-0/+3
|\ | | | | | | | | | | | | | | | | 38cbf5e15b Genex: Add $<BUILD_LOCAL_INTERFACE:...> genex 37b5c78688 cmGeneratorExpression: Refactor stripExportInterface() to use enum class Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7919
| * Genex: Add $<BUILD_LOCAL_INTERFACE:...> genexKyle Edwards2022-11-171-0/+3
| | | | | | | | Fixes: #23209
* | Genex: Fix TARGET_PROPERTY lookup scope in transitive usage requirementsBrad King2022-11-171-1/+4
|/ | | | | | | | | | When `$<TARGET_PROPERTY:tgt,prop>` is used in an `INTERFACE_*` target property for usage requirements, it may be evaluated in the context of a dependent target in another directory. Look up the `tgt` name in the directory of the target whose property holds the expression so that imported targets isolated to that directory are visible. Fixes: #24163
* cmGeneratorExpression: Require cmake instanceKyle Edwards2022-11-111-1/+1
|
* Genex LINK_LIBRARY and LINK_GROUP: check supported propertiesMarc Chevrier2022-07-061-6/+16
| | | | | | | Refines check for properties supporting these genex. Enhance error message. Fixes: #23699
* Genex: Fix TARGET_BUNDLE_DIR_NAME incorrect extensionBen Leadbetter2022-07-011-2/+12
| | | | | | | | Fix the genex from commit 997af2e1a6 (Genex: Add TARGET_BUNDLE_DIR_NAME, 2022-04-14, v3.24.0-rc1~233^2) to use the correct bundle directory extension for each bundle type. Fixes: #23683
* Genex-PATH_EQUAL: path comparisonMarc Chevrier2022-06-011-0/+18
| | | | To complete issue #23498
* Genex-PATH: path handlingMarc Chevrier2022-05-311-0/+436
| | | | Fixes: #23498
* clang-tidy: fix `performance-unnecessary-copy-initialization` lintsBen Boeckel2022-05-241-5/+5
|
* Genex: Add TARGET_BUNDLE_DIR_NAMEBen Leadbetter2022-04-221-1/+39
| | | | | | Evaluate to the name of the bundle directory for a given bundle target. Fixes: #23409
* cmTarget: Add `HasKnownObjectFileLocation()` shorthandHyper Nova Sun2022-04-111-1/+1
| | | | | | | | Allow `cmGlobalGenerator`s to decide `HasKnownObjectFileLocation()` per given `cmTarget` - `cmGlobalGenerator::HasKnownObjectFileLocation()` now takes an optional `cmGeneratorTarget` - `cmTarget::HasKnownObjectFileLocation()` added as a shorthand
* LINK_LIBRARIES: Evaluate separately for linking and usage requirementsBrad King2022-03-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | We evaluate `LINK_LIBRARIES` and `INTERFACE_LINK_LIBRARIES` for two purposes: * Constructing the link line. * Collecting usage requirements. We evaluate `INTERFACE_LINK_LIBRARIES` separately for each purpose in order to support the `$<LINK_ONLY:...>` generator expression used to express private link dependencies of a static library. Previously we only evaluated `LINK_LIBRARIES` for linking, and used that result for collecting usage requirements too. Therefore `$<LINK_ONLY:...>` does not work in `LINK_LIBRARIES`. With the introduction of `INTERFACE_LINK_LIBRARIES_DIRECT`, evaluation of `LINK_LIBRARIES` now needs to distinguish these two cases in order to honor link dependencies encountered through `$<LINK_ONLY:...>` without also exposing other usage requirements through private dependencies of a static library. Revise internal infrastructure to distinguish the two cases when evaluating `LINK_LIBRARIES`. Make the information available in code paths for `INTERFACE_LINK_LIBRARIES_DIRECT` and `LINK_ONLY`. Defer actually using the information to later commits. Issue: #22496
* Genex-LINK_GROUP: Add possibility to group libraries at link stepMarc Chevrier2022-02-281-0/+85
| | | | Fixes: #23121
* Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-071-0/+63
| | | | | | | | This generator expression offers the capability, for the link step, to decorate libraries with prefix/suffix flags and/or adding any specific flag for each library. Fixes: #22812, #18751, #20078, #22703
* Source: fix more -Wmissing-prototypes warningsSean McBride2021-10-251-1/+2
|
* Source: fix many -Wmissing-prototypes warnings by marking functions staticSean McBride2021-10-251-4/+4
|
* Rename cmProp in cmValueMarc Chevrier2021-09-211-10/+11
|
* cmSystemTools::VersionCompare: use std::string for argumentsMarc Chevrier2021-09-171-4/+2
|
* Refactor: cmStandardLevelResolver::ComputeFeaturesAvailable returns cmPropMarc Chevrier2021-08-121-1/+1
|
* Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configsBrad King2021-07-211-1/+1
| | | | | | | | | | | | | | | | Since commit 2ae72ef74b (Xcode: Enable multi-arch TARGET_OBJECTS genex in [INTERFACE_]LINK_LIBRARIES, 2021-05-26, v3.21.0-rc1~126^2) the TARGET_OBJECTS genex, when referenced for linking, is now evaluated with EvaluateForBuildsystem enabled. This causes the object file paths to be computed with a buildsystem-specific placeholder for the configuration. This is normally fine because the placeholder will be evaluated by the native buildsystem tool using the proper configuration. However, the Ninja Multi-Config generator's `${CONFIGURATION}` placeholder may not have the correct value for cross-config object files. Switch back to using the per-config location of each object file for this generator. Fixes: #22436
* cmGeneratorExpressionNode: Factor out local variable for global generatorBrad King2021-07-201-3/+4
|
* HIP: Add language to CMakeRobert Maynard2021-06-071-2/+5
|
* cmGeneratorExpressionNode: Constify local variableBrad King2021-05-281-1/+1
|
* Genex: Fix grammatical error in TARGET_OBJECTS error messageKyle Edwards2021-02-241-2/+2
|
* Genex: Add TARGET_RUNTIME_DLLS genexKyle Edwards2021-02-241-0/+51
| | | | Co-Authored-by: Brad King <brad.king@kitware.com>
* Constify some code as suggested by clang-tidyCengizhan Pasaoglu2020-10-191-7/+7
|
* OBJECT libraries: Properly recognize if sources depend on configurationDeniz Bahadir2020-09-231-3/+2
| | | | Fixes: #21198