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>
(cherry picked from qttools/29bdcb6008a58203efc62ee58e57d266e60be095,
plus creator-specific amend)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Oswald Buddenhagen
2012-09-18 09:32:46 +02:00
committed by Oswald Buddenhagen
parent d394225d89
commit 7ab1f97419
2 changed files with 10 additions and 3 deletions

View File

@@ -1052,7 +1052,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