summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.cxx
diff options
context:
space:
mode:
authorModestas Vainius <modax@debian.org>2011-07-25 17:24:41 (GMT)
committerBrad King <brad.king@kitware.com>2011-07-27 13:13:58 (GMT)
commit317d077f6ed05640f86efbcb5c34d776a4ad9590 (patch)
treef7d015e795d94c15e21e96fc11b6206fbbde59f8 /Source/cmComputeLinkInformation.cxx
parent1ed19bcb25edc5f1911b5d0237db34426e747cd2 (diff)
downloadCMake-317d077f6ed05640f86efbcb5c34d776a4ad9590.zip
CMake-317d077f6ed05640f86efbcb5c34d776a4ad9590.tar.gz
CMake-317d077f6ed05640f86efbcb5c34d776a4ad9590.tar.bz2
multiarch: Treat lib/<arch> as implicit link dir (#12326)
Add multiarch library directories to the set of implicit link directories. In particular, this keeps lib/<arch> out of R(UN)PATH.
Diffstat (limited to 'Source/cmComputeLinkInformation.cxx')
-rw-r--r--Source/cmComputeLinkInformation.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index e3c33a2..c87b64d 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -1603,6 +1603,18 @@ void cmComputeLinkInformation::LoadImplicitLinkInfo()
cmSystemTools::ExpandListArgument(implicitLinks, implicitDirVec);
}
+ // Append library architecture to all implicit platform directories
+ // and add them to the set
+ if(const char* libraryArch =
+ this->Makefile->GetDefinition("CMAKE_LIBRARY_ARCHITECTURE"))
+ {
+ for (std::vector<std::string>::const_iterator i = implicitDirVec.begin();
+ i != implicitDirVec.end(); ++i)
+ {
+ this->ImplicitLinkDirs.insert(*i + "/" + libraryArch);
+ }
+ }
+
// Get language-specific implicit directories.
std::string implicitDirVar = "CMAKE_";
implicitDirVar += this->LinkLanguage;