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)) {
|
||||
QString baseDir;
|
||||
if (loc == PrefixPath) {
|
||||
// we make the prefix path absolute to the executable's directory
|
||||
#ifdef BOOTSTRAPPING
|
||||
return QDir(QFileInfo(qmake_libraryInfoFile()).absolutePath()).absoluteFilePath(ret);
|
||||
baseDir = QFileInfo(qmake_libraryInfoFile()).absolutePath();
|
||||
#else
|
||||
if (QCoreApplication::instance()) {
|
||||
#ifdef Q_OS_MAC
|
||||
@ -466,15 +467,16 @@ QLibraryInfo::location(LibraryLocation loc)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return QDir(QCoreApplication::applicationDirPath()).absoluteFilePath(ret);
|
||||
baseDir = QCoreApplication::applicationDirPath();
|
||||
} else {
|
||||
return QDir::current().absoluteFilePath(ret);
|
||||
baseDir = QDir::currentPath();
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
// 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user