support relative Sysroot specification in qt.conf

permits relocatable qmake installations in, say, $sysroot/hosttools/.
note that it makes patently no sense to have a relative Prefix when
using a relative Sysroot.

Change-Id: I36e5149acb20a885c3cd244bc9d67aa48b01a56f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
This commit is contained in:
Oswald Buddenhagen 2012-03-20 19:34:41 +01:00 committed by Qt by Nokia
parent a985fa5c51
commit 8d28fba3ed

View File

@ -318,13 +318,11 @@ QLibraryInfo::rawLocation(LibraryLocation loc)
if (!ret.isEmpty() && QDir::isRelativePath(ret)) {
QString baseDir;
#ifdef QT_BUILD_QMAKE
if (loc == HostPrefixPath || loc == PrefixPath) {
// We make the prefix path absolute to the executable's directory.
if (loc == HostPrefixPath || loc == PrefixPath || loc == SysrootPath) {
// We make the prefix/sysroot path absolute to the executable's directory.
// loc == PrefixPath while a sysroot is set would make no sense here.
// loc == SysrootPath only makes sense if qmake lives inside the sysroot itself.
baseDir = QFileInfo(qmake_libraryInfoFile()).absolutePath();
} else if (loc == SysrootPath) {
// The sysroot is bare
return ret;
} else if (loc > SysrootPath && loc <= LastHostPath) {
// We make any other host path absolute to the host prefix directory.
baseDir = rawLocation(HostPrefixPath);