cmGeneratorTarget: Avoid recursion in GetOutputName method

Since support for generator expressions was added to OUTPUT_NAME it is
possible for project code to cause recursion in this method by using a
$<TARGET_FILE> genex.  Detect and reject such cases.
This commit is contained in:
Robert Goulet
2015-08-14 20:35:58 +00:00
committed by Brad King
parent a38ea312c0
commit 3c37d2642d
7 changed files with 72 additions and 35 deletions
+4
View File
@@ -375,6 +375,10 @@ private:
};
mutable std::map<std::string, LinkImplClosure> LinkImplClosureMap;
typedef std::pair<std::string, bool> OutputNameKey;
typedef std::map<OutputNameKey, std::string> OutputNameMapType;
mutable OutputNameMapType OutputNameMap;
public:
std::vector<cmTarget const*> const&
GetLinkImplementationClosure(const std::string& config) const;