浏览代码

Eclipse: move code for generating links to projects into separate function

Alex
Alex Neundorf 14 年之前
父节点
当前提交
cef6bd94d7
共有 2 个文件被更改,包括 39 次插入27 次删除
  1. 36 27
      Source/cmExtraEclipseCDT4Generator.cxx
  2. 3 0
      Source/cmExtraEclipseCDT4Generator.h

+ 36 - 27
Source/cmExtraEclipseCDT4Generator.cxx

@@ -424,33 +424,7 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
 
 
   if (this->SupportsVirtualFolders)
   if (this->SupportsVirtualFolders)
     {
     {
-    // for each sub project create a linked resource to the source dir
-    // - only if it is an out-of-source build
-    this->AppendLinkedResource(fout, "[Subprojects]",
-                               "virtual:/virtual", VirtualFolder);
-
-    for (std::map<cmStdString, std::vector<cmLocalGenerator*> >::const_iterator
-         it = this->GlobalGenerator->GetProjectMap().begin();
-         it != this->GlobalGenerator->GetProjectMap().end();
-         ++it)
-      {
-      std::string linkSourceDirectory = this->GetEclipsePath(
-                            it->second[0]->GetMakefile()->GetStartDirectory());
-      // a linked resource must not point to a parent directory of .project or
-      // .project itself
-      if ((this->HomeOutputDirectory != linkSourceDirectory) &&
-          !cmSystemTools::IsSubDirectory(this->HomeOutputDirectory.c_str(),
-                                         linkSourceDirectory.c_str()))
-        {
-        std::string linkName = "[Subprojects]/";
-        linkName += it->first;
-        this->AppendLinkedResource(fout, linkName,
-                                   this->GetEclipsePath(linkSourceDirectory),
-                                   LinkToFolder
-                                  );
-        this->SrcLinkedResources.push_back(it->first);
-        }
-      }
+    this->CreateLinksToSubprojects(fout);
 
 
     std::string linkName = "[Targets]";
     std::string linkName = "[Targets]";
     this->AppendLinkedResource(fout, linkName, "virtual:/virtual",
     this->AppendLinkedResource(fout, linkName, "virtual:/virtual",
@@ -550,6 +524,41 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
   fout << "</projectDescription>\n";
   fout << "</projectDescription>\n";
 }
 }
 
 
+
+//----------------------------------------------------------------------------
+void cmExtraEclipseCDT4Generator::CreateLinksToSubprojects(
+                                                   cmGeneratedFileStream& fout)
+{
+  // for each sub project create a linked resource to the source dir
+  // - only if it is an out-of-source build
+  this->AppendLinkedResource(fout, "[Subprojects]",
+                             "virtual:/virtual", VirtualFolder);
+
+  for (std::map<cmStdString, std::vector<cmLocalGenerator*> >::const_iterator
+       it = this->GlobalGenerator->GetProjectMap().begin();
+       it != this->GlobalGenerator->GetProjectMap().end();
+       ++it)
+    {
+    std::string linkSourceDirectory = this->GetEclipsePath(
+                            it->second[0]->GetMakefile()->GetStartDirectory());
+    // a linked resource must not point to a parent directory of .project or
+    // .project itself
+    if ((this->HomeOutputDirectory != linkSourceDirectory) &&
+        !cmSystemTools::IsSubDirectory(this->HomeOutputDirectory.c_str(),
+                                       linkSourceDirectory.c_str()))
+      {
+      std::string linkName = "[Subprojects]/";
+      linkName += it->first;
+      this->AppendLinkedResource(fout, linkName,
+                                 this->GetEclipsePath(linkSourceDirectory),
+                                 LinkToFolder
+                                );
+      this->SrcLinkedResources.push_back(it->first);
+      }
+    }
+}
+
+
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
 void cmExtraEclipseCDT4Generator::AppendIncludeDirectories(
 void cmExtraEclipseCDT4Generator::AppendIncludeDirectories(
                             cmGeneratedFileStream& fout,
                             cmGeneratedFileStream& fout,

+ 3 - 0
Source/cmExtraEclipseCDT4Generator.h

@@ -103,6 +103,9 @@ private:
   static void AddEnvVar(cmGeneratedFileStream& fout, const char* envVar,
   static void AddEnvVar(cmGeneratedFileStream& fout, const char* envVar,
                         cmMakefile* mf);
                         cmMakefile* mf);
 
 
+  void CreateLinksToSubprojects(cmGeneratedFileStream& fout);
+
+
   std::vector<std::string> SrcLinkedResources;
   std::vector<std::string> SrcLinkedResources;
   std::vector<std::string> OutLinkedResources;
   std::vector<std::string> OutLinkedResources;
   std::string HomeDirectory;
   std::string HomeDirectory;