summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-16 15:16:28 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-16 17:38:22 (GMT)
commitc45dd669abe746de2e9724044591d70397653d98 (patch)
tree7d2cb18623edebb5442678490fde1a9765d79517 /Source/cmTarget.h
parent89095514a7f6d7075e8d2fda1b88445b87a3bec8 (diff)
downloadCMake-c45dd669abe746de2e9724044591d70397653d98.zip
CMake-c45dd669abe746de2e9724044591d70397653d98.tar.gz
CMake-c45dd669abe746de2e9724044591d70397653d98.tar.bz2
cmTarget: Cache compatible interface property sets
Replace isLinkDependentProperty with a CompatibleInterfaces structure that records all the compatible interface properties in a set for each type. This avoids repeatedly traversing the link implementation closure and asking every target for its compatible interface properties.
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 1271272..486315e 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -300,6 +300,16 @@ public:
std::vector<cmTarget const*> const&
GetLinkImplementationClosure(const std::string& config) const;
+ struct CompatibleInterfaces
+ {
+ std::set<std::string> PropsBool;
+ std::set<std::string> PropsString;
+ std::set<std::string> PropsNumberMax;
+ std::set<std::string> PropsNumberMin;
+ };
+ CompatibleInterfaces const&
+ GetCompatibleInterfaces(std::string const& config) const;
+
/** The link implementation specifies the direct library
dependencies needed by the object files of the target. */
struct LinkImplementationLibraries