瀏覽代碼

STYLE: Factor cmComputeLinkInformation constructor

This factors some code out of the constructor into a new method
cmComputeLinkInformation::LoadImplicitLinkInfo for readability.
Brad King 16 年之前
父節點
當前提交
7a907f87f8
共有 2 個文件被更改,包括 25 次插入15 次删除
  1. 24 15
      Source/cmComputeLinkInformation.cxx
  2. 1 0
      Source/cmComputeLinkInformation.h

+ 24 - 15
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<std::string> implicitLinkVec;
-    cmSystemTools::ExpandListArgument(implicitLinks, implicitLinkVec);
-    for(std::vector<std::string>::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<std::string> 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<std::string>::const_iterator i = implicitDirVec.begin();
+      i != implicitDirVec.end(); ++i)
+    {
+    this->ImplicitLinkDirs.insert(*i);
+    }
+}
+
 //----------------------------------------------------------------------------
 std::vector<std::string> const&
 cmComputeLinkInformation::GetRuntimeSearchPath()

+ 1 - 0
Source/cmComputeLinkInformation.h

@@ -160,6 +160,7 @@ private:
   cmOrderDirectories* OrderLinkerSearchPath;
   bool FinishLinkerSearchDirectories();
   void PrintLinkPolicyDiagnosis(std::ostream&);
+  void LoadImplicitLinkInfo();
   std::set<cmStdString> ImplicitLinkDirs;
 
   // Linker search path compatibility mode.