aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/proparser
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2016-10-21 20:23:07 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2016-11-01 17:34:29 +0000
commit1589ce3ce855833a50b4e12c86f2b9b5a83d7b02 (patch)
treeeef06ccbd022e6184e38000135cff19c35fcfd15 /src/shared/proparser
parentc42b12c98e1b27ac7146c31fdcdbe53915cab2c8 (diff)
chuck sysroot handling out of ProFileEvaluator
qmake doesn't do anything with sysroots at this level, so this code plain does not belong here. sysrootification is used when resolving INCLUDEPATH, which is emulating compiler behavior. this is done by higher-level code. Task-number: QTCREATORBUG-11944 Change-Id: Ia25f0b6ef713e9809d974e3f3e49ba308b8c933f Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/shared/proparser')
-rw-r--r--src/shared/proparser/ioutils.h4
-rw-r--r--src/shared/proparser/profileevaluator.cpp32
-rw-r--r--src/shared/proparser/profileevaluator.h10
3 files changed, 11 insertions, 35 deletions
diff --git a/src/shared/proparser/ioutils.h b/src/shared/proparser/ioutils.h
index f4fd79f32d..d7fc596b0d 100644
--- a/src/shared/proparser/ioutils.h
+++ b/src/shared/proparser/ioutils.h
@@ -25,6 +25,8 @@
#pragma once
+#include "qmake_global.h"
+
#include <qstring.h>
QT_BEGIN_NAMESPACE
@@ -35,7 +37,7 @@ namespace QMakeInternal {
This class provides replacement functionality for QFileInfo, QFile & QDir,
as these are abysmally slow.
*/
-class IoUtils {
+class QMAKE_EXPORT IoUtils {
public:
enum FileType {
FileNotFound = 0,
diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index e164a6cebc..ab11f5b6ce 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -39,7 +39,7 @@ void ProFileEvaluator::initialize()
QMakeEvaluator::initStatics();
}
-ProFileEvaluator::ProFileEvaluator(ProFileGlobals *option, QMakeParser *parser, QMakeVfs *vfs,
+ProFileEvaluator::ProFileEvaluator(QMakeGlobals *option, QMakeParser *parser, QMakeVfs *vfs,
QMakeHandler *handler)
: d(new QMakeEvaluator(option, parser, vfs, handler))
{
@@ -86,29 +86,13 @@ QStringList ProFileEvaluator::values(const QString &variableName, const ProFile
return ret;
}
-QString ProFileEvaluator::sysrootify(const QString &path, const QString &baseDir) const
-{
- ProFileGlobals *option = static_cast<ProFileGlobals *>(d->m_option);
-#ifdef Q_OS_WIN
- Qt::CaseSensitivity cs = Qt::CaseInsensitive;
-#else
- Qt::CaseSensitivity cs = Qt::CaseSensitive;
-#endif
- const bool isHostSystemPath =
- option->sysroot.isEmpty() || path.startsWith(option->sysroot, cs)
- || path.startsWith(baseDir, cs) || path.startsWith(d->m_outputDir, cs)
- || !QFileInfo::exists(option->sysroot + path);
-
- 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);
+ result << el;
} else {
QString fn = QDir::cleanPath(baseDirectory + QLatin1Char('/') + el);
if (IoUtils::exists(fn))
@@ -125,10 +109,9 @@ QStringList ProFileEvaluator::absolutePathValues(
{
QStringList result;
foreach (const QString &el, values(variable)) {
- QString absEl = IoUtils::isAbsolutePath(el)
- ? sysrootify(el, baseDirectory) : IoUtils::resolvePath(baseDirectory, el);
+ QString absEl = IoUtils::resolvePath(baseDirectory, el);
if (IoUtils::fileType(absEl) == IoUtils::FileIsDir)
- result << QDir::cleanPath(absEl);
+ result << absEl;
}
return result;
}
@@ -141,12 +124,11 @@ QStringList ProFileEvaluator::absoluteFileValues(
foreach (const QString &el, pro ? values(variable, pro) : values(variable)) {
QString absEl;
if (IoUtils::isAbsolutePath(el)) {
- const QString elWithSysroot = sysrootify(el, baseDirectory);
- if (IoUtils::exists(elWithSysroot)) {
- result << QDir::cleanPath(elWithSysroot);
+ if (IoUtils::exists(el)) {
+ result << el;
goto next;
}
- absEl = elWithSysroot;
+ absEl = el;
} else {
foreach (const QString &dir, searchDirs) {
QString fn = dir + QLatin1Char('/') + el;
diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h
index 59285bea25..dd016c0911 100644
--- a/src/shared/proparser/profileevaluator.h
+++ b/src/shared/proparser/profileevaluator.h
@@ -40,12 +40,6 @@ class QMakeParser;
class QMakeEvaluator;
class QMakeHandler;
-class QMAKE_EXPORT ProFileGlobals : public QMakeGlobals
-{
-public:
- QString sysroot;
-};
-
class QMAKE_EXPORT ProFileEvaluator
{
public:
@@ -62,7 +56,7 @@ public:
// Call this from a concurrency-free context
static void initialize();
- ProFileEvaluator(ProFileGlobals *option, QMakeParser *parser, QMakeVfs *vfs,
+ ProFileEvaluator(QMakeGlobals *option, QMakeParser *parser, QMakeVfs *vfs,
QMakeHandler *handler);
~ProFileEvaluator();
@@ -91,8 +85,6 @@ public:
QString propertyValue(const QString &val) const;
private:
- QString sysrootify(const QString &path, const QString &baseDir) const;
-
QMakeEvaluator *d;
};