diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-02-13 14:02:09 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-02-24 15:43:24 (GMT) |
commit | b8b99cc1e5efa8f1513ceb3025c66f3b28fc5bab (patch) | |
tree | 9860adeb2410ec89a3ed155525650a534c994414 /Source/cmTarget.h | |
parent | 01bca553b83cd8c3a4a4d0348bd317d118a98995 (diff) | |
download | CMake-b8b99cc1e5efa8f1513ceb3025c66f3b28fc5bab.zip CMake-b8b99cc1e5efa8f1513ceb3025c66f3b28fc5bab.tar.gz CMake-b8b99cc1e5efa8f1513ceb3025c66f3b28fc5bab.tar.bz2 |
cmTarget: Avoid computing languages when computing transitive targets.
For the OLD CMP0022 behavior, we need to treat the implementation
as the interface when computing the interface libraries. Make it
possible to do that without computing the link languages by adding
a new GetLinkImplementationLibraries method. Extend the existing
GetLinkImplementation method to populate the languages if the
libraries have already been computed and cached.
Change GetTransitivePropertyTargets to invoke GetLinkInterfaceLibraries
instead of GetLinkInterface. This is key, as it is a method called
by cmGeneratorExpressionEvaluator.
Change the cmGeneratorExpressionEvaluator to invoke
GetLinkImplementationLibraries instead of GetLinkImplementation.
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r-- | Source/cmTarget.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 8bc5af4..f3cd874 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -264,6 +264,8 @@ public: if the target cannot be linked. */ LinkInterface const* GetLinkInterface(const char* config, cmTarget const* headTarget) const; + LinkInterface const* GetLinkInterfaceLibraries(const char* config, + cmTarget const* headTarget) const; void GetTransitivePropertyTargets(const char* config, cmTarget const* headTarget, std::vector<cmTarget*> &libs) const; @@ -285,6 +287,9 @@ public: LinkImplementation const* GetLinkImplementation(const char* config, cmTarget const* head) const; + LinkImplementation const* GetLinkImplementationLibraries(const char* config, + cmTarget const* head) const; + /** Link information from the transitive closure of the link implementation and the interfaces of its dependencies. */ struct LinkClosure |