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

Alex
This commit is contained in:
Alex Neundorf 2011-10-23 12:22:20 +02:00
parent cef6bd94d7
commit c3f30bdd63
2 changed files with 84 additions and 80 deletions

View File

@ -426,10 +426,33 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
{ {
this->CreateLinksToSubprojects(fout); this->CreateLinksToSubprojects(fout);
std::string linkName = "[Targets]"; this->CreateLinksForTargets(fout);
this->AppendLinkedResource(fout, linkName, "virtual:/virtual", }
VirtualFolder);
// I'm not sure this makes too much sense. There can be different
// output directories in different subdirs, so we would need more of them.
// for EXECUTABLE_OUTPUT_PATH when not in binary dir
this->AppendOutLinkedResource(fout,
mf->GetSafeDefinition("CMAKE_RUNTIME_OUTPUT_DIRECTORY"),
mf->GetSafeDefinition("EXECUTABLE_OUTPUT_PATH"));
// for LIBRARY_OUTPUT_PATH when not in binary dir
this->AppendOutLinkedResource(fout,
mf->GetSafeDefinition("CMAKE_LIBRARY_OUTPUT_DIRECTORY"),
mf->GetSafeDefinition("LIBRARY_OUTPUT_PATH"));
fout << "\t</linkedResources>\n";
fout << "</projectDescription>\n";
}
//----------------------------------------------------------------------------
void cmExtraEclipseCDT4Generator::CreateLinksForTargets(
cmGeneratedFileStream& fout)
{
std::string linkName = "[Targets]";
this->AppendLinkedResource(fout, linkName, "virtual:/virtual",VirtualFolder);
for (std::vector<cmLocalGenerator*>::const_iterator for (std::vector<cmLocalGenerator*>::const_iterator
lgIt = this->GlobalGenerator->GetLocalGenerators().begin(); lgIt = this->GlobalGenerator->GetLocalGenerators().begin();
@ -456,8 +479,7 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
linkName2 += ti->first; linkName2 += ti->first;
this->AppendLinkedResource(fout, linkName2, "virtual:/virtual", this->AppendLinkedResource(fout, linkName2, "virtual:/virtual",
VirtualFolder); VirtualFolder);
std::vector<cmSourceGroup> sourceGroups = std::vector<cmSourceGroup> sourceGroups=makefile->GetSourceGroups();
makefile->GetSourceGroups();
// get the files from the source lists then add them to the groups // get the files from the source lists then add them to the groups
cmTarget* tgt = const_cast<cmTarget*>(&ti->second); cmTarget* tgt = const_cast<cmTarget*>(&ti->second);
std::vector<cmSourceFile*>const & files = tgt->GetSourceFiles(); std::vector<cmSourceFile*>const & files = tgt->GetSourceFiles();
@ -472,8 +494,7 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
sourceGroup.AssignSource(*sfIt); sourceGroup.AssignSource(*sfIt);
} }
for(std::vector<cmSourceGroup>::iterator sgIt = sourceGroups.begin();
for(std::vector<cmSourceGroup>::iterator sgIt=sourceGroups.begin();
sgIt != sourceGroups.end(); sgIt != sourceGroups.end();
++sgIt) ++sgIt)
{ {
@ -505,23 +526,6 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
} }
} }
} }
}
// I'm not sure this makes too much sense. There can be different
// output directories in different subdirs, so we would need more of them.
// for EXECUTABLE_OUTPUT_PATH when not in binary dir
this->AppendOutLinkedResource(fout,
mf->GetSafeDefinition("CMAKE_RUNTIME_OUTPUT_DIRECTORY"),
mf->GetSafeDefinition("EXECUTABLE_OUTPUT_PATH"));
// for LIBRARY_OUTPUT_PATH when not in binary dir
this->AppendOutLinkedResource(fout,
mf->GetSafeDefinition("CMAKE_LIBRARY_OUTPUT_DIRECTORY"),
mf->GetSafeDefinition("LIBRARY_OUTPUT_PATH"));
fout << "\t</linkedResources>\n";
fout << "</projectDescription>\n";
} }

View File

@ -104,7 +104,7 @@ private:
cmMakefile* mf); cmMakefile* mf);
void CreateLinksToSubprojects(cmGeneratedFileStream& fout); void CreateLinksToSubprojects(cmGeneratedFileStream& fout);
void CreateLinksForTargets(cmGeneratedFileStream& fout);
std::vector<std::string> SrcLinkedResources; std::vector<std::string> SrcLinkedResources;
std::vector<std::string> OutLinkedResources; std::vector<std::string> OutLinkedResources;