|
@@ -1100,7 +1100,7 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
|
|
|
std::string Evaluate(const std::vector<std::string> ¶meters,
|
|
std::string Evaluate(const std::vector<std::string> ¶meters,
|
|
|
cmGeneratorExpressionContext *context,
|
|
cmGeneratorExpressionContext *context,
|
|
|
const GeneratorExpressionContent *content,
|
|
const GeneratorExpressionContent *content,
|
|
|
- cmGeneratorExpressionDAGChecker *) const
|
|
|
|
|
|
|
+ cmGeneratorExpressionDAGChecker *dagChecker) const
|
|
|
{
|
|
{
|
|
|
// Lookup the referenced target.
|
|
// Lookup the referenced target.
|
|
|
std::string name = *parameters.begin();
|
|
std::string name = *parameters.begin();
|
|
@@ -1125,6 +1125,13 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
|
|
|
"Target \"" + name + "\" is not an executable or library.");
|
|
"Target \"" + name + "\" is not an executable or library.");
|
|
|
return std::string();
|
|
return std::string();
|
|
|
}
|
|
}
|
|
|
|
|
+ if (dagChecker && dagChecker->EvaluatingLinkLibraries(name.c_str()))
|
|
|
|
|
+ {
|
|
|
|
|
+ ::reportError(context, content->GetOriginalExpression(),
|
|
|
|
|
+ "Expressions which require the linker language may not "
|
|
|
|
|
+ "be used while evaluating link libraries");
|
|
|
|
|
+ return std::string();
|
|
|
|
|
+ }
|
|
|
context->DependTargets.insert(target);
|
|
context->DependTargets.insert(target);
|
|
|
context->AllTargets.insert(target);
|
|
context->AllTargets.insert(target);
|
|
|
|
|
|