summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-09-18 09:32:46 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-19 19:54:44 +0200
commit04cd23428a4f2cfa5ee02b70f2086ff832aae925 (patch)
treebb029e46f34ba4cdf2ec3d9eb53ed564935c59c0 /qmake
parentcc2cd0db5d0c53605ab93f796765667ead1920e8 (diff)
resolve only one level of symlinks, and only for the default specs
otherwise we end up in the source tree, which is counterproductive. Task-number: QTBUG-26869 Change-Id: Id44a94f827dc285c75b9b243c8ef6478e668e3ff Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/library/qmakeevaluator.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index 32cec77306..0128371b0d 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -1128,7 +1128,12 @@ bool QMakeEvaluator::loadSpecInternal()
return false;
}
#ifdef Q_OS_UNIX
- m_qmakespec = QFileInfo(m_qmakespec).canonicalFilePath();
+ if (m_qmakespec.endsWith(QLatin1String("/default-host"))
+ || m_qmakespec.endsWith(QLatin1String("/default"))) {
+ QString rspec = QFileInfo(m_qmakespec).readLink();
+ if (!rspec.isEmpty())
+ m_qmakespec = QDir::cleanPath(QDir(m_qmakespec).absoluteFilePath(rspec));
+ }
#else
// We can't resolve symlinks as they do on Unix, so configure.exe puts
// the source of the qmake.conf at the end of the default/qmake.conf in