summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
diff options
context:
space:
mode:
authorRobert Goulet <robert.goulet@autodesk.com>2015-08-14 20:35:58 (GMT)
committerBrad King <brad.king@kitware.com>2015-08-20 13:56:45 (GMT)
commit3c37d2642d9000a2d01bc46ad0ea74a741bdb658 (patch)
treec1bb63b2a35fbb0de0691c88e1c4535cee6d0f4e /Source/cmGeneratorTarget.h
parenta38ea312c02eec6e4ee61015f70920999bf79ff9 (diff)
downloadCMake-3c37d2642d9000a2d01bc46ad0ea74a741bdb658.zip
CMake-3c37d2642d9000a2d01bc46ad0ea74a741bdb658.tar.gz
CMake-3c37d2642d9000a2d01bc46ad0ea74a741bdb658.tar.bz2
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.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r--Source/cmGeneratorTarget.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 68e7a8a..15b3335 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -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;