From 04cd23428a4f2cfa5ee02b70f2086ff832aae925 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 18 Sep 2012 09:32:46 +0200 Subject: 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 --- qmake/library/qmakeevaluator.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3