forked from qt-creator/qt-creator
Qt: Handle absolute paths to mkspecs
Handle absolute paths to mkspec and do not accept any directory as a mkspec: Only accept directories containing a qmake.conf. Task-number: QTCREATORBUG-17237 Change-Id: I18c2b28a0abc525721df7c4f1ac2d272ca4cadb1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -1082,13 +1082,19 @@ FileName BaseQtVersion::mkspecPath() const
|
|||||||
|
|
||||||
bool BaseQtVersion::hasMkspec(const FileName &spec) const
|
bool BaseQtVersion::hasMkspec(const FileName &spec) const
|
||||||
{
|
{
|
||||||
QFileInfo fi;
|
if (spec.isEmpty())
|
||||||
fi.setFile(QDir::fromNativeSeparators(qmakeProperty("QT_HOST_DATA"))
|
return true; // default spec of a Qt version
|
||||||
+ QLatin1String("/mkspecs/") + spec.toString());
|
|
||||||
if (fi.isDir())
|
QDir mkspecDir = QDir(QDir::fromNativeSeparators(qmakeProperty("QT_HOST_DATA"))
|
||||||
|
+ QLatin1String("/mkspecs/"));
|
||||||
|
const QString absSpec = mkspecDir.absoluteFilePath(spec.toString());
|
||||||
|
if (QFileInfo(absSpec).isDir() && QFileInfo(absSpec + "/qmake.conf").isFile())
|
||||||
return true;
|
return true;
|
||||||
fi.setFile(sourcePath().toString() + QLatin1String("/mkspecs/") + spec.toString());
|
mkspecDir.setPath(sourcePath().toString() + QLatin1String("/mkspecs/"));
|
||||||
return fi.isDir();
|
const QString absSrcSpec = mkspecDir.absoluteFilePath(spec.toString());
|
||||||
|
return absSrcSpec != absSpec
|
||||||
|
&& QFileInfo(absSrcSpec).isDir()
|
||||||
|
&& QFileInfo(absSrcSpec + "/qmake.conf").isFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseQtVersion::QmakeBuildConfigs BaseQtVersion::defaultBuildConfig() const
|
BaseQtVersion::QmakeBuildConfigs BaseQtVersion::defaultBuildConfig() const
|
||||||
|
|||||||
Reference in New Issue
Block a user