diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 66d355db8e..a824fe42d6 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -365,26 +365,14 @@ cmComputeLinkInformation "dependent library path"); } - // Get the implicit link directories for this platform. - if(const char* implicitLinks = - (this->Makefile->GetDefinition - ("CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES"))) - { - std::vector implicitLinkVec; - cmSystemTools::ExpandListArgument(implicitLinks, implicitLinkVec); - for(std::vector::const_iterator - i = implicitLinkVec.begin(); - i != implicitLinkVec.end(); ++i) - { - this->ImplicitLinkDirs.insert(*i); - } - } - // Add the search path entries requested by the user to path ordering. this->OrderLinkerSearchPath ->AddUserDirectories(this->Target->GetLinkDirectories()); this->OrderRuntimeSearchPath ->AddUserDirectories(this->Target->GetLinkDirectories()); + + // Set up the implicit link directories. + this->LoadImplicitLinkInfo(); this->OrderLinkerSearchPath ->SetImplicitDirectories(this->ImplicitLinkDirs); this->OrderRuntimeSearchPath @@ -1550,6 +1538,27 @@ void cmComputeLinkInformation::PrintLinkPolicyDiagnosis(std::ostream& os) << "Run \"cmake --help-policy CMP0003\" for more information."; } +//---------------------------------------------------------------------------- +void cmComputeLinkInformation::LoadImplicitLinkInfo() +{ + std::vector implicitDirVec; + + // Get platform-wide implicit directories. + if(const char* implicitLinks = + (this->Makefile->GetDefinition + ("CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES"))) + { + cmSystemTools::ExpandListArgument(implicitLinks, implicitDirVec); + } + + // Store implicit link directories. + for(std::vector::const_iterator i = implicitDirVec.begin(); + i != implicitDirVec.end(); ++i) + { + this->ImplicitLinkDirs.insert(*i); + } +} + //---------------------------------------------------------------------------- std::vector const& cmComputeLinkInformation::GetRuntimeSearchPath() diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h index 147b8ff8b5..d7821c6060 100644 --- a/Source/cmComputeLinkInformation.h +++ b/Source/cmComputeLinkInformation.h @@ -160,6 +160,7 @@ private: cmOrderDirectories* OrderLinkerSearchPath; bool FinishLinkerSearchDirectories(); void PrintLinkPolicyDiagnosis(std::ostream&); + void LoadImplicitLinkInfo(); std::set ImplicitLinkDirs; // Linker search path compatibility mode.