diff options
Diffstat (limited to 'src/lib/corelib/language/projectresolver.cpp')
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index ebe60e032..d61956249 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -533,12 +533,20 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext) group->fileTags, group->overrideTags, group->files); ErrorInfo fileError; if (group->enabled) { - foreach (const SourceArtifactConstPtr &a, group->files) { + const ValuePtr filesValue = item->property(QLatin1String("files")); + foreach (const SourceArtifactConstPtr &a, group->allFiles()) { if (!FileInfo(a->absoluteFilePath).exists()) { fileError.append(Tr::tr("File '%1' does not exist.") .arg(a->absoluteFilePath), item->property(QLatin1String("files"))->location()); } + CodeLocation &loc = m_productContext->sourceArtifactLocations[a->absoluteFilePath]; + if (loc.isValid()) { + fileError.append(Tr::tr("Duplicate source file '%1' at %2 and %3.") + .arg(a->absoluteFilePath, loc.toString(), + filesValue->location().toString())); + } + loc = filesValue->location(); } if (fileError.hasError()) throw ErrorInfo(fileError); |