support relative Sysroot specification in qt.conf
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 20 Mar 2012 18:34:41 +0000 (19:34 +0100)
committerQt by Nokia <qt-info@nokia.com>
Thu, 22 Mar 2012 17:59:45 +0000 (18:59 +0100)
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>
src/corelib/global/qlibraryinfo.cpp

index d319b2e..801b4d9 100644 (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);