diff options
Diffstat (limited to 'src/shared/proparser')
-rw-r--r-- | src/shared/proparser/profileevaluator.cpp | 18 | ||||
-rw-r--r-- | src/shared/proparser/profileevaluator.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index 50bf4a89cfc..e164a6cebcb 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -102,6 +102,24 @@ QString ProFileEvaluator::sysrootify(const QString &path, const QString &baseDir return isHostSystemPath ? path : option->sysroot + path; } +QStringList ProFileEvaluator::fixifiedValues( + const QString &variable, const QString &baseDirectory, const QString &buildDirectory) const +{ + QStringList result; + foreach (const QString &el, values(variable)) { + if (IoUtils::isAbsolutePath(el)) { + result << sysrootify(el, baseDirectory); + } else { + QString fn = QDir::cleanPath(baseDirectory + QLatin1Char('/') + el); + if (IoUtils::exists(fn)) + result << fn; + else + result << QDir::cleanPath(buildDirectory + QLatin1Char('/') + el); + } + } + return result; +} + QStringList ProFileEvaluator::absolutePathValues( const QString &variable, const QString &baseDirectory) const { diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h index 27b26081b0d..59285bea256 100644 --- a/src/shared/proparser/profileevaluator.h +++ b/src/shared/proparser/profileevaluator.h @@ -82,6 +82,8 @@ public: QString value(const QString &variableName) const; QStringList values(const QString &variableName) const; QStringList values(const QString &variableName, const ProFile *pro) const; + QStringList fixifiedValues( + const QString &variable, const QString &baseDirectory, const QString &buildDirectory) const; QStringList absolutePathValues(const QString &variable, const QString &baseDirectory) const; QStringList absoluteFileValues( const QString &variable, const QString &baseDirectory, const QStringList &searchDirs, |