c16acd35b3 GenEx: Add support for custom transitive link properties
b9ee79b8a1 GenEx: Add support for custom transitive compile properties
633afa0b2e cmGeneratorExpressionDAGChecker: Make config name available in constructor
e64d09a729 cmGeneratorTarget: Add GetLinkImplementationClosure mode for linking
a11cbcc268 cmGeneratorTarget: Add TransitiveProperty constructor to help some compilers
af59289904 Help: Format TARGET_PROPERTY special evaluation rules as a definition list
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: alcroito <alexandru.croitor@qt.io>
Merge-request: !9516
Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a
new `TRANSITIVE_LINK_PROPERTIES` property in the target's link
closure to enable transitive evaluation of named properties through
the link closure, including entries guarded by `$<LINK_ONLY:...>`.
Fixes: #20416
Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a
new `TRANSITIVE_COMPILE_PROPERTIES` property in the target's link
closure to enable transitive evaluation of named properties through
the link closure, excluding entries guarded by `$<LINK_ONLY:...>`.
Issue: #20416
Previously this method always returned the closure for compile-only
usage requirements. Add an option to get the closure for linking, which
pierces `$<LINK_ONLY>`.
Some compilers have trouble initializing TransitiveProperty as a parent
class using an initializer list unless there is an explicit constructor:
* SunPro fails to compile
* XLClang seems to miscompile, exhibiting strange runtime behavior
09c74c6d0c cmGeneratorTarget: Factor transitive property methods into own source
feaca40931 cmGeneratorTarget: Factor link interface/impl methods into own source
b4924c562a cmGeneratorTarget: Factor compatible interface properties into own source
cdd7112a5d cmGeneratorTarget: Factor options-like usage requirements into own source
881a46819e cmGeneratorTarget: Factor LINK_DIRECTORIES impl into own source
0a3c97308d cmGeneratorTarget: Factor INCLUDE_DIRECTORIES impl into own source
7ffb92022c cmGeneratorTarget: Factor SOURCES impl into own source
d0fc932528 cmGeneratorTarget: Factor TargetPropertyEntry into own source
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9536
Upstream ninja commit `8e6c741a4b` ("explain" debug prints just before
each command is run, 2022-01-06) changed the `ninja -d explain` output
for our test case. The `IncrementalSwift-second` case primarily needs
to match stdout, so update our stderr expectation to work for either
form of ninja's output.
7bf15e49a8 ExternalProject: Fix misleading git update output
b2496bf14c FetchContent: Populate directly without a sub-build
173daad58d ExternalProject: Move more internal commands out of main file
462e583267 ExternalProject: Switch download, update and patch to use _EP_ vars
0ccc8e340d ExternalProject: Provide ExternalProject_Add keywords through a macro
91e1015722 ExternalProject: Don't treat YES as a keyword
a1743ce1ef ExternalProject: Fix minor formatting error
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !9513
When re-running the build with the git download method,
and where GIT_TAG is set to a tag name that we already have
locally from the first run, the second run will skip the update
step if it is already at the requested tag. The message in this
case was previously printing the commit hash instead of the
tag name, which was wrong. This wasn't noticed before
because that output wasn't usually shown, but we now do
show that message after making message output log levels
more consistent between the steps.