diff options
author | Brad King <brad.king@kitware.com> | 2021-07-20 18:51:06 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-07-21 15:46:15 (GMT) |
commit | cb777dd81e71746fcd324dc157d1b41f3ae3ce24 (patch) | |
tree | dc65d54ee402350b352b079c37f195b7e0ff42c4 /Source/cmGeneratorExpressionNode.cxx | |
parent | 83c82722808eb3f6c38b9069c95960378446afbb (diff) | |
download | CMake-cb777dd81e71746fcd324dc157d1b41f3ae3ce24.zip CMake-cb777dd81e71746fcd324dc157d1b41f3ae3ce24.tar.gz CMake-cb777dd81e71746fcd324dc157d1b41f3ae3ce24.tar.bz2 |
Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configs
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
Diffstat (limited to 'Source/cmGeneratorExpressionNode.cxx')
-rw-r--r-- | Source/cmGeneratorExpressionNode.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 6ace49d..217ebe5 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -1665,7 +1665,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode gt->GetTargetObjectNames(context->Config, objects); std::string obj_dir; - if (context->EvaluateForBuildsystem) { + if (context->EvaluateForBuildsystem && !gg->SupportsCrossConfigs()) { // Use object file directory with buildsystem placeholder. obj_dir = gt->ObjectDirectory; context->HadContextSensitiveCondition = |