summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorExpressionNode.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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
* cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-1/+1
|
* Merge topic 'target_genex_dependency'Brad King2020-09-011-2/+68
|\ | | | | | | | | | | | | | | f14b390198 GenEx: Remove unneeded dependencies from target info queries Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Merge-request: !5127
| * GenEx: Remove unneeded dependencies from target info queriesRobert Maynard2020-09-011-2/+68
| | | | | | | | | | | | | | | | | | | | Only generate a graph dependency between a custom command and a target when the custom command queries for the file path of an artifact of the target. This makes generator expressions such as `TARGET_FILE_DIR` behave the same way as `TARGET_PROPERTY` which never generated a graph dependency.
* | Add ISPC compiler support to CMakeRobert Maynard2020-08-281-2/+3
|/
* Genex: $<TARGET_PROPERTY> strip emtpy list elements for predefined propertiesMarc Chevrier2020-07-211-4/+6
| | | | Fixes: #20951
* Genex $<COMPILE_LANGUAGE>: Extend contexts supportedMarc Chevrier2020-07-131-3/+6
| | | | | | | | When genex $<TARGET_PROPERTY:...> for properties like INCLUDE_DIRECTORIES is evaluated as part of add_custom_command or add_custom_target, genex $<COMPILE_LANGUAGE> and $<COMPLIE_LANG_AND_ID> should be supported. Fixes: #20926
* cmStandardLevelResolver: Added to handle standard level queriesRobert Maynard2020-07-011-5/+6
| | | | Refactored out of cmMakefile
* Genex: $<CONFIG:> now supports multiple configurationsRobert Maynard2020-06-241-12/+16
| | | | | Instead of having to do $<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>> you can do $<CONFIG:Release,MinSizeRel>
* Refactor language standard computationJustin Goshi2020-06-161-2/+2
| | | | | Instead of mutating the configure-time cmTarget's properties at generate time, compute and store it in a cmGeneratorTarget field.
* cmMakefile: Change CompileFeatureKnown to take target name instead of targetJustin Goshi2020-06-151-1/+1
| | | | The implementation needs only the target name.
* add_library/add_executable: allow local alias to imported targetsMarc Chevrier2020-06-021-0/+8
| | | | Fixes: #20641
* Single location for cmProp typedefVitaly Stakhovsky2020-06-011-0/+1
|
* Merge topic 'stl-support'Brad King2020-05-011-2/+1
|\ | | | | | | | | | | | | 8d4a9ee398 Refactoring: rename "cm_static_string_view.hxx" as <cmext/string_view> Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4689
| * Refactoring: rename "cm_static_string_view.hxx" as <cmext/string_view>Marc Chevrier2020-04-301-2/+1
| |
* | cmGeneratorTarget::GetProperty: return cmPropVitaly Stakhovsky2020-04-291-9/+8
|/
* Genex: Add generator expressions $<DEVICE_LINK> and $<HOST_LINK>Marc Chevrier2020-04-191-0/+68
| | | | | | These generator expressions can only be used in link options properties. These expressions return the arguments respectively for device and host link step, otherwise return an empty string.
* Refactoring: add cm::contains to <cmext/algorithm>Marc Chevrier2020-04-171-4/+5
|
* cmTarget::GetProperty: return cmPropVitaly Stakhovsky2020-03-301-5/+5
|
* cmTarget: minor code improvementsVitaly Stakhovsky2020-03-171-3/+3
|
* Genex: Add $<LINK_LANGUAGE:...> and $<LINK_LANG_AND_ID:...>Marc Chevrier2020-02-261-0/+149
| | | | | | This MR may help to solve issues #19757 and #18008 Fixes: #19965
* cm::String: enhance compatibility with STLMarc Chevrier2020-01-251-1/+1
|