diff options
author | Brad King <brad.king@kitware.com> | 2011-12-14 16:28:42 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-12-14 16:33:01 (GMT) |
commit | 183b95098ea4102da5ca510e8c7a36106a5c257a (patch) | |
tree | 14ea2d045ee414171b9d5e18f9ad5cfd528f9550 /Source/cmComputeLinkDepends.cxx | |
parent | 4ed1769186f0622efced9d89e6593d136c920dd2 (diff) | |
download | CMake-183b95098ea4102da5ca510e8c7a36106a5c257a.zip CMake-183b95098ea4102da5ca510e8c7a36106a5c257a.tar.gz CMake-183b95098ea4102da5ca510e8c7a36106a5c257a.tar.bz2 |
Follow all dependencies of shared library private dependencies
In cmComputeLinkDepends we compute the transitive closure of private
shared library dependencies. When a shared library is added to this
closure we must follow all of its dependencies whether they are private
or public. Previously we only followed the private dependencies. Fix
the implementation to follow the public dependencies too. Also extend
the ExportImport test to cover this case.
Diffstat (limited to 'Source/cmComputeLinkDepends.cxx')
-rw-r--r-- | Source/cmComputeLinkDepends.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index 1021bf2..802cfcf 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -429,7 +429,8 @@ void cmComputeLinkDepends::HandleSharedDependency(SharedDepEntry const& dep) if(cmTarget::LinkInterface const* iface = entry.Target->GetLinkInterface(this->Config)) { - // We use just the shared dependencies, not the interface. + // Follow public and private dependencies transitively. + this->QueueSharedDependencies(index, iface->Libraries); this->QueueSharedDependencies(index, iface->SharedDeps); } } |