| 50 | |
| 51 | namespace { |
| 52 | void addInterfaceEntry(cmGeneratorTarget const* headTarget, |
| 53 | std::string const& prop, |
| 54 | cm::GenEx::Context const& context, |
| 55 | cmGeneratorExpressionDAGChecker* dagChecker, |
| 56 | EvaluatedTargetPropertyEntries& entries, |
| 57 | cmGeneratorTarget::UseTo usage, |
| 58 | std::vector<cmLinkItem> const& libraries) |
| 59 | { |
| 60 | for (cmLinkItem const& lib : libraries) { |
| 61 | if (lib.Target) { |
| 62 | EvaluatedTargetPropertyEntry ee(lib, lib.Backtrace); |
| 63 | // Pretend $<TARGET_PROPERTY:lib.Target,prop> appeared in our |
| 64 | // caller's property and hand-evaluate it as if it were compiled. |
| 65 | // Create a context as cmCompiledGeneratorExpression::Evaluate does. |
| 66 | cm::GenEx::Evaluation eval(context, false, headTarget, headTarget, true, |
| 67 | lib.Backtrace); |
| 68 | cmExpandList( |
| 69 | lib.Target->EvaluateInterfaceProperty(prop, &eval, dagChecker, usage), |
| 70 | ee.Values); |
| 71 | ee.ContextDependent = eval.HadContextSensitiveCondition; |
| 72 | entries.Entries.emplace_back(std::move(ee)); |
| 73 | } |
| 74 | } |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | void AddInterfaceEntries(cmGeneratorTarget const* headTarget, |
no test coverage detected
searching dependent graphs…