introduce /src qmake property variants
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>
Tue, 11 Jun 2013 14:08:30 +0000 (16:08 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 26 Aug 2013 21:55:50 +0000 (23:55 +0200)
this is for shadow builds during build time, where the respective files
are expected in the source dir.

Change-Id: I18dcfbdef99e1562a51dacac333642cae8105ebd
(cherry picked from qtbase/4531c83376c1a3546305a9fa5203e0a885e8860d)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
src/linguist/shared/qmakeglobals.cpp

index 48c4dfc..6f2390f 100644 (file)
@@ -324,33 +324,46 @@ bool QMakeGlobals::initProperties()
         QT_PCLOSE(proc);
     }
 #endif
-    foreach (QByteArray line, data.split('\n'))
-        {
-            int off = line.indexOf(':');
-            if (off < 0) // huh?
-                continue;
-            if (line.endsWith('\r'))
-                line.chop(1);
-            QString name = QString::fromLatin1(line.left(off));
-            ProString value = ProString(QDir::fromNativeSeparators(
-                        QString::fromLocal8Bit(line.mid(off + 1))));
-            properties.insert(ProKey(name), value);
-            if (name.startsWith(QLatin1String("QT_")) && !name.contains(QLatin1Char('/'))) {
-                if (name.startsWith(QLatin1String("QT_INSTALL_"))) {
+    foreach (QByteArray line, data.split('\n')) {
+        int off = line.indexOf(':');
+        if (off < 0) // huh?
+            continue;
+        if (line.endsWith('\r'))
+            line.chop(1);
+        QString name = QString::fromLatin1(line.left(off));
+        ProString value = ProString(QDir::fromNativeSeparators(
+                    QString::fromLocal8Bit(line.mid(off + 1))));
+        properties.insert(ProKey(name), value);
+        if (name.startsWith(QLatin1String("QT_"))) {
+            bool plain = !name.contains(QLatin1Char('/'));
+            if (!plain) {
+                if (!name.endsWith(QLatin1String("/get")))
+                    continue;
+                name.chop(4);
+            }
+            if (name.startsWith(QLatin1String("QT_INSTALL_"))) {
+                if (plain) {
                     properties.insert(ProKey(name + QLatin1String("/raw")), value);
                     properties.insert(ProKey(name + QLatin1String("/get")), value);
-                    if (name == QLatin1String("QT_INSTALL_PREFIX")
-                        || name == QLatin1String("QT_INSTALL_DATA")
-                        || name == QLatin1String("QT_INSTALL_BINS")) {
-                        name.replace(3, 7, QLatin1String("HOST"));
+                }
+                properties.insert(ProKey(name + QLatin1String("/src")), value);
+                if (name == QLatin1String("QT_INSTALL_PREFIX")
+                    || name == QLatin1String("QT_INSTALL_DATA")
+                    || name == QLatin1String("QT_INSTALL_BINS")) {
+                    name.replace(3, 7, QLatin1String("HOST"));
+                    if (plain) {
                         properties.insert(ProKey(name), value);
                         properties.insert(ProKey(name + QLatin1String("/get")), value);
                     }
-                } else if (name.startsWith(QLatin1String("QT_HOST_"))) {
-                    properties.insert(ProKey(name + QLatin1String("/get")), value);
+                    properties.insert(ProKey(name + QLatin1String("/src")), value);
                 }
+            } else if (name.startsWith(QLatin1String("QT_HOST_"))) {
+                if (plain)
+                    properties.insert(ProKey(name + QLatin1String("/get")), value);
+                properties.insert(ProKey(name + QLatin1String("/src")), value);
             }
         }
+    }
     return true;
 }
 #else