diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index 78a87047a..5c7d4002f 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -1334,12 +1334,26 @@ bool cmExtraEclipseCDT4Generator { outputPath = this->HomeOutputDirectory + "/" + outputPath; } + + // in this case it's not necessary: if (cmSystemTools::IsSubDirectory(outputPath.c_str(), this->HomeOutputDirectory.c_str())) { return false; } + // in these two cases Eclipse would complain: + if (cmSystemTools::IsSubDirectory(this->HomeOutputDirectory.c_str(), + outputPath.c_str())) + { + return false; + } + if (cmSystemTools::GetRealPath(outputPath.c_str()) + == cmSystemTools::GetRealPath(this->HomeOutputDirectory.c_str())) + { + return false; + } + std::string name = this->GetPathBasename(outputPath); // make sure linked resource name is unique