make QLibraryInfo return clean paths
as a side effect, don't use QDir for path resolution - it doesn't buy us anything. Task-number: QTBUG-1371 Reviewed-by: joerg (cherry picked from commit 9cd62e4f7b23894a672297f6eebda64cdbd53cb0)
This commit is contained in:
parent
86a6ffbc3e
commit
23db871a44
@ -450,10 +450,11 @@ QLibraryInfo::location(LibraryLocation loc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (QDir::isRelativePath(ret)) {
|
if (QDir::isRelativePath(ret)) {
|
||||||
|
QString baseDir;
|
||||||
if (loc == PrefixPath) {
|
if (loc == PrefixPath) {
|
||||||
// we make the prefix path absolute to the executable's directory
|
// we make the prefix path absolute to the executable's directory
|
||||||
#ifdef BOOTSTRAPPING
|
#ifdef BOOTSTRAPPING
|
||||||
return QDir(QFileInfo(qmake_libraryInfoFile()).absolutePath()).absoluteFilePath(ret);
|
baseDir = QFileInfo(qmake_libraryInfoFile()).absolutePath();
|
||||||
#else
|
#else
|
||||||
if (QCoreApplication::instance()) {
|
if (QCoreApplication::instance()) {
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
@ -466,15 +467,16 @@ QLibraryInfo::location(LibraryLocation loc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(ret);
|
baseDir = QCoreApplication::applicationDirPath();
|
||||||
} else {
|
} else {
|
||||||
return QDir::current().absoluteFilePath(ret);
|
baseDir = QDir::currentPath();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
// we make any other path absolute to the prefix directory
|
// we make any other path absolute to the prefix directory
|
||||||
return QDir(location(PrefixPath)).absoluteFilePath(ret);
|
baseDir = location(PrefixPath);
|
||||||
}
|
}
|
||||||
|
ret = QDir::cleanPath(baseDir + QLatin1Char('/') + ret);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user