aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/proparser
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/proparser')
-rw-r--r--src/shared/proparser/profileevaluator.cpp7
-rw-r--r--src/shared/proparser/profileevaluator.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index 2c179a2584a..3124b273319 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -120,11 +120,16 @@ QStringList ProFileEvaluator::absolutePathValues(
}
QVector<ProFileEvaluator::SourceFile> ProFileEvaluator::absoluteFileValues(
- const QString &variable, const QString &baseDirectory, const QStringList &searchDirs) const
+ const QString &variable, const QString &baseDirectory, const QStringList &searchDirs,
+ QHash<ProString, bool> *handled) const
{
QMakeVfs::VfsFlags flags = (d->m_cumulative ? QMakeVfs::VfsCumulative : QMakeVfs::VfsExact);
QVector<SourceFile> result;
foreach (const ProString &str, d->values(ProKey(variable))) {
+ bool &seen = (*handled)[str];
+ if (seen)
+ continue;
+ seen = true;
const QString &el = d->m_option->expandEnvVars(str.toQString());
QString absEl;
if (IoUtils::isAbsolutePath(el)) {
diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h
index c6d4a79cfae..a356dadaf7a 100644
--- a/src/shared/proparser/profileevaluator.h
+++ b/src/shared/proparser/profileevaluator.h
@@ -85,7 +85,8 @@ public:
const QString &variable, const QString &baseDirectory, const QString &buildDirectory) const;
QStringList absolutePathValues(const QString &variable, const QString &baseDirectory) const;
QVector<SourceFile> absoluteFileValues(
- const QString &variable, const QString &baseDirectory, const QStringList &searchDirs) const;
+ const QString &variable, const QString &baseDirectory, const QStringList &searchDirs,
+ QHash<ProString, bool> *handled) const;
QString propertyValue(const QString &val) const;
private: