aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qt4projectmanager/qt4project.cpp4
-rw-r--r--src/shared/proparser/qmakeevaluator.cpp2
-rw-r--r--src/shared/proparser/qmakeglobals.cpp6
-rw-r--r--src/shared/proparser/qmakeglobals.h3
-rw-r--r--tests/manual/proparser/main.cpp4
5 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 49a3cecdda5..1671ebbe12f 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -943,8 +943,10 @@ QtSupport::ProFileReader *Qt4Project::createProFileReader(Qt4ProFileNode *qt4Pro
QString systemRoot = SysRootProfileInformation::hasSysRoot(p)
? SysRootProfileInformation::sysRoot(p).toString() : QString();
- if (qtVersion && qtVersion->isValid())
+ if (qtVersion && qtVersion->isValid()) {
+ m_qmakeGlobals->qmake_abslocation = QDir::cleanPath(qtVersion->qmakeCommand().toString());
m_qmakeGlobals->setProperties(qtVersion->versionInfo());
+ }
m_qmakeGlobals->sysroot = systemRoot;
Utils::Environment::const_iterator eit = env.constBegin(), eend = env.constEnd();
diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index c540e9dff24..59a6b039c36 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -859,6 +859,8 @@ void QMakeEvaluator::loadDefaults()
vars[ProString("DIR_SEPARATOR")] << ProString(m_option->dir_sep, NoHash);
vars[ProString("DIRLIST_SEPARATOR")] << ProString(m_option->dirlist_sep, NoHash);
vars[ProString("_DATE_")] << ProString(QDateTime::currentDateTime().toString(), NoHash);
+ if (!m_option->qmake_abslocation.isEmpty())
+ vars[ProString("QMAKE_QMAKE")] << ProString(m_option->qmake_abslocation, NoHash);
#if defined(Q_OS_WIN32)
vars[ProString("QMAKE_HOST.os")] << ProString("Windows", NoHash);
diff --git a/src/shared/proparser/qmakeglobals.cpp b/src/shared/proparser/qmakeglobals.cpp
index 06be49e76cd..7d992e0ff22 100644
--- a/src/shared/proparser/qmakeglobals.cpp
+++ b/src/shared/proparser/qmakeglobals.cpp
@@ -184,17 +184,17 @@ QString QMakeGlobals::expandEnvVars(const QString &str) const
}
#ifdef PROEVALUATOR_INIT_PROPS
-bool QMakeGlobals::initProperties(const QString &qmake)
+bool QMakeGlobals::initProperties()
{
QByteArray data;
#ifndef QT_BOOTSTRAPPED
QProcess proc;
- proc.start(qmake, QStringList() << QLatin1String("-query"));
+ proc.start(qmake_abslocation, QStringList() << QLatin1String("-query"));
if (!proc.waitForFinished())
return false;
data = proc.readAll();
#else
- if (FILE *proc = QT_POPEN(QString(IoUtils::shellQuote(qmake) + QLatin1String(" -query"))
+ if (FILE *proc = QT_POPEN(QString(IoUtils::shellQuote(qmake_abslocation) + QLatin1String(" -query"))
.toLocal8Bit(), "r")) {
char buff[1024];
while (!feof(proc))
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index 11b85bebca0..b21c4289f82 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -84,13 +84,14 @@ public:
QProcessEnvironment environment;
#endif
QString sysroot;
+ QString qmake_abslocation;
QString user_template, user_template_prefix;
// -nocache, -cache, -spec, QMAKESPEC
// -set persistent value
void setCommandLineArguments(const QStringList &args);
#ifdef PROEVALUATOR_INIT_PROPS
- bool initProperties(const QString &qmake);
+ bool initProperties();
#else
void setProperties(const QHash<QString, QString> &props);
#endif
diff --git a/tests/manual/proparser/main.cpp b/tests/manual/proparser/main.cpp
index 5aa0c363089..656cdf8b124 100644
--- a/tests/manual/proparser/main.cpp
+++ b/tests/manual/proparser/main.cpp
@@ -158,7 +158,9 @@ int main(int argc, char **argv)
qFatal("need at least two arguments: [-v] <cumulative?> <filenme> [<out_pwd> [<qmake options>]]");
QMakeGlobals option;
- option.initProperties(QLibraryInfo::location(QLibraryInfo::BinariesPath) + QLatin1String("/qmake"));
+ option.qmake_abslocation =
+ QDir::cleanPath(QLibraryInfo::location(QLibraryInfo::BinariesPath) + QLatin1String("/qmake"));
+ option.initProperties();
if (args.count() >= 4)
option.setCommandLineArguments(args.mid(3));
QMakeParser parser(0, &evalHandler);