mkspecFullPath = baseMkspecDir + "/macx-g++";
}
//resolve mkspec link
- QFileInfo f3(mkspecFullPath);
- while (f3.isSymLink()) {
- mkspecFullPath = f3.symLinkTarget();
- f3.setFile(mkspecFullPath);
- }
+ mkspecFullPath = resolveLink(mkspecFullPath);
}
break;
}
f2.close();
}
#else
- QFileInfo f2(mkspecFullPath);
- while (f2.isSymLink()) {
- mkspecFullPath = f2.symLinkTarget();
- f2.setFile(mkspecFullPath);
- }
+ mkspecFullPath =resolveLink(mkspecFullPath);
#endif
#ifdef Q_OS_WIN
m_toolChainUpToDate = true;
}
+QString QtVersion::resolveLink(const QString &path) const
+{
+ QFileInfo f(path);
+ int links = 16;
+ while (links-- && f.isSymLink())
+ f.setFile(f.symLinkTarget());
+ if (links <= 0)
+ return QString();
+ return f.path();
+}
+
QString QtVersion::mwcDirectory() const
{
return m_mwcDirectory;
&& !qmakeCommand().isEmpty()
&& !displayName().isEmpty()
&& !m_notInstalled
- && m_versionInfo.contains("QT_INSTALL_BINS");
+ && m_versionInfo.contains("QT_INSTALL_BINS")
+ && !m_mkspecFullPath.isEmpty();
}
QString QtVersion::invalidReason() const
if (!m_versionInfo.contains("QT_INSTALL_BINS"))
return QCoreApplication::translate("QtVersion",
"Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong?");
+ if (m_mkspecFullPath.isEmpty())
+ return QCoreApplication::translate("QtVersion", "The default mkspec symlink is broken.");
return QString();
}