diff options
author | Brad King <brad.king@kitware.com> | 2014-07-16 15:16:28 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-16 17:38:22 (GMT) |
commit | c45dd669abe746de2e9724044591d70397653d98 (patch) | |
tree | 7d2cb18623edebb5442678490fde1a9765d79517 /Source/cmTarget.h | |
parent | 89095514a7f6d7075e8d2fda1b88445b87a3bec8 (diff) | |
download | CMake-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.h | 10 |
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 |