diff options
author | Alex Neundorf <neundorf@kde.org> | 2011-11-19 10:01:03 (GMT) |
---|---|---|
committer | Alex Neundorf <neundorf@kde.org> | 2011-11-19 10:01:03 (GMT) |
commit | 1110e455c20598983bbf435bd9356c1a952e305a (patch) | |
tree | 88b4e5f02ed39abb4194f43e13752612323d8a8f /Source/cmExtraEclipseCDT4Generator.cxx | |
parent | 8e1bbee4d948025dfb1888e0a8b0365d7bd360c8 (diff) | |
download | CMake-1110e455c20598983bbf435bd9356c1a952e305a.zip CMake-1110e455c20598983bbf435bd9356c1a952e305a.tar.gz CMake-1110e455c20598983bbf435bd9356c1a952e305a.tar.bz2 |
Eclipse: create links to subprojects also in the source-project (#12579)
Alex
Diffstat (limited to 'Source/cmExtraEclipseCDT4Generator.cxx')
-rw-r--r-- | Source/cmExtraEclipseCDT4Generator.cxx | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index 248a30a..2e4e68f 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -113,7 +113,7 @@ void cmExtraEclipseCDT4Generator::Generate() this->CreateCProjectFile(); } -void cmExtraEclipseCDT4Generator::CreateSourceProjectFile() const +void cmExtraEclipseCDT4Generator::CreateSourceProjectFile() { assert(this->HomeDirectory != this->HomeOutputDirectory); @@ -141,6 +141,16 @@ void cmExtraEclipseCDT4Generator::CreateSourceProjectFile() const "\t</buildSpec>\n" "\t<natures>\n" "\t</natures>\n" + "\t<linkedResources>\n"; + + if (this->SupportsVirtualFolders) + { + this->CreateLinksToSubprojects(fout, this->HomeDirectory); + this->SrcLinkedResources.clear(); + } + + fout << + "\t</linkedResources>\n" "</projectDescription>\n" ; } @@ -434,7 +444,7 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile() if (this->SupportsVirtualFolders) { - this->CreateLinksToSubprojects(fout); + this->CreateLinksToSubprojects(fout, this->HomeOutputDirectory); this->CreateLinksForTargets(fout); } @@ -541,7 +551,7 @@ void cmExtraEclipseCDT4Generator::CreateLinksForTargets( //---------------------------------------------------------------------------- void cmExtraEclipseCDT4Generator::CreateLinksToSubprojects( - cmGeneratedFileStream& fout) + cmGeneratedFileStream& fout, const std::string& baseDir) { // for each sub project create a linked resource to the source dir // - only if it is an out-of-source build @@ -557,8 +567,8 @@ void cmExtraEclipseCDT4Generator::CreateLinksToSubprojects( 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(), + if ((baseDir != linkSourceDirectory) && + !cmSystemTools::IsSubDirectory(baseDir.c_str(), linkSourceDirectory.c_str())) { std::string linkName = "[Subprojects]/"; |