Ken Martin 23 years ago
parent
commit
bdfa41a4a6

+ 7 - 0
Source/cmGlobalCodeWarriorGenerator.cxx

@@ -272,6 +272,13 @@ void cmGlobalCodeWarriorGenerator::WriteGroupList(std::ostream& fout)
 {
   fout << "<GROUPLIST>\n";
   
+  unsigned int i;
+  // for each local generator
+  for (i = 0; i < m_LocalGenerators.size(); ++i)
+    {
+    static_cast<cmLocalCodeWarriorGenerator *>(m_LocalGenerators[i])->WriteGroups(fout);
+    }
+  
   fout << "</GROUPLIST>\n";
 }
 

+ 33 - 0
Source/cmLocalCodeWarriorGenerator.cxx

@@ -116,3 +116,36 @@ void cmLocalCodeWarriorGenerator::WriteFileList(std::ostream& fout,
     }
   fout << "</FILELIST>\n";
 }
+
+void cmLocalCodeWarriorGenerator::WriteGroups(std::ostream& fout)
+{
+  cmTargets &tgts = m_Makefile->GetTargets();
+  for(cmTargets::iterator l = tgts.begin(); 
+      l != tgts.end(); l++)
+    {
+    this->WriteGroup(fout,l->first.c_str(),&(l->second));
+    }
+}
+
+void cmLocalCodeWarriorGenerator::WriteGroup(std::ostream& fout,
+                                             const char *tgtName,
+                                             cmTarget const *l)
+{
+  fout << "<GROUP><NAME>" << tgtName << "</NAME>\n";
+
+  // for each file
+  std::vector<cmSourceFile*> const& classes = l->GetSourceFiles();
+  for(std::vector<cmSourceFile*>::const_iterator i = classes.begin(); 
+      i != classes.end(); i++)
+    {
+    std::string source = (*i)->GetFullPath();
+    fout << "<FILEREF>\n";
+    fout << "<TARGETNAME>" << tgtName << "</TARGETNAME>\n";
+    fout << "<PATHTYPE>Name</PATHTYPE>\n";
+    fout << "<PATH>" << source << "</PATH>\n";
+    fout << "<PATHFORMAT>Generic</PATHFORMAT>\n";
+    fout << "</FILEREF>\n";
+    }
+
+  fout << "</GROUP>\n";
+}

+ 2 - 0
Source/cmLocalCodeWarriorGenerator.h

@@ -57,9 +57,11 @@ public:
   void SetBuildType(BuildType,const char *name);
 
   void WriteTargets(std::ostream& fout);
+  void WriteGroups(std::ostream& fout);
 
 private:
   void WriteTarget(std::ostream& fout, const char *name, cmTarget const *l);
+  void WriteGroup(std::ostream& fout, const char *name, cmTarget const *l);
   void WriteSettingList(std::ostream& fout, const char *name, 
                         cmTarget const *l);
   void WriteFileList(std::ostream& fout, const char *name, cmTarget const *l);