summaryrefslogtreecommitdiffstats
path: root/Source/cmExtraEclipseCDT4Generator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmExtraEclipseCDT4Generator.cxx')
-rw-r--r--Source/cmExtraEclipseCDT4Generator.cxx25
1 files changed, 15 insertions, 10 deletions
diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 8edd57f..e4fa0edc 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -283,16 +283,21 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile() const
it != this->GlobalGenerator->GetProjectMap().end();
++it)
{
- fout <<
- "\t\t<link>\n"
- "\t\t\t<name>" << it->first << "</name>\n"
- "\t\t\t<type>2</type>\n"
- "\t\t\t<location>"
- << this->GetEclipsePath(
- it->second[0]->GetMakefile()->GetStartDirectory())
- << "</location>\n"
- "\t\t</link>\n"
- ;
+ std::string linkSourceDirectory =this->GetEclipsePath(
+ it->second[0]->GetMakefile()->GetStartDirectory());
+ if (!cmSystemTools::IsSubDirectory(homeOutputDirectory.c_str(),
+ linkSourceDirectory.c_str()))
+ {
+ fout <<
+ "\t\t<link>\n"
+ "\t\t\t<name>" << it->first << "</name>\n"
+ "\t\t\t<type>2</type>\n"
+ "\t\t\t<location>"
+ << this->GetEclipsePath(linkSourceDirectory)
+ << "</location>\n"
+ "\t\t</link>\n"
+ ;
+ }
}
// for EXECUTABLE_OUTPUT_PATH when not in binary dir
std::string output_path = mf->GetDefinition("EXECUTABLE_OUTPUT_PATH");