Allow QStandardPaths (Mac, Windows, Unix) to be bootstrapped
authorThiago Macieira <thiago.macieira@intel.com>
Fri, 26 Oct 2012 20:13:03 +0000 (13:13 -0700)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 2 Nov 2012 14:18:44 +0000 (15:18 +0100)
This allows using QStandardPaths in one of the bootstrapped tools, if
required for a future need.

The Blackberry version appears to be usable in bootstrapped mode
already.

Change-Id: Ia4e9b9564395d2e151f8ac229ac2a2aa2982e92f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
src/corelib/io/qstandardpaths.cpp
src/corelib/io/qstandardpaths_mac.cpp
src/corelib/io/qstandardpaths_unix.cpp
src/corelib/io/qstandardpaths_win.cpp

index 4d7e359..ccf2565 100644 (file)
 #include <qdir.h>
 #include <qfileinfo.h>
 #include <qhash.h>
+
+#ifndef QT_BOOTSTRAPPED
 #include <qobject.h>
 #include <qcoreapplication.h>
+#endif
 
 #ifndef QT_NO_STANDARDPATHS
 
@@ -300,7 +303,7 @@ QString QStandardPaths::findExecutable(const QString &executableName, const QStr
     an empty QString if no relevant location can be found.
 */
 
-#ifndef Q_OS_MAC
+#if !defined(Q_OS_MAC) && !defined(QT_BOOTSTRAPPED)
 QString QStandardPaths::displayName(StandardLocation type)
 {
     switch (type) {
index 20a7dcf..068bfb4 100644 (file)
 #include "qstandardpaths.h"
 #include <qdir.h>
 #include <private/qcore_mac_p.h>
+
+#ifndef QT_BOOTSTRAPPED
 #include <qcoreapplication.h>
+#endif
 
 #include <ApplicationServices/ApplicationServices.h>
 
@@ -101,12 +104,16 @@ static QString getFullPath(const FSRef &ref)
 
 static void appendOrganizationAndApp(QString &path)
 {
+#ifndef QT_BOOTSTRAPPED
     const QString org = QCoreApplication::organizationName();
     if (!org.isEmpty())
         path += QLatin1Char('/') + org;
     const QString appName = QCoreApplication::applicationName();
     if (!appName.isEmpty())
         path += QLatin1Char('/') + appName;
+#else
+    Q_UNUSED(path);
+#endif
 }
 
 static QString macLocation(QStandardPaths::StandardLocation type, short domain)
@@ -180,6 +187,7 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
     return dirs;
 }
 
+#ifndef QT_BOOTSTRAPPED
 QString QStandardPaths::displayName(StandardLocation type)
 {
     if (QStandardPaths::HomeLocation == type)
@@ -197,5 +205,6 @@ QString QStandardPaths::displayName(StandardLocation type)
 
     return static_cast<QString>(displayName);
 }
+#endif
 
 QT_END_NAMESPACE
index 822c687..3fb3658 100644 (file)
 #include <qfile.h>
 #include <qhash.h>
 #include <qtextstream.h>
-#include <qcoreapplication.h>
 #include <private/qfilesystemengine_p.h>
 #include <errno.h>
 #include <stdlib.h>
 
+#ifndef QT_BOOTSTRAPPED
+#include <qcoreapplication.h>
+#endif
+
 #ifndef QT_NO_STANDARDPATHS
 
 QT_BEGIN_NAMESPACE
 
 static void appendOrganizationAndApp(QString &path)
 {
+#ifndef QT_BOOTSTRAPPED
     const QString org = QCoreApplication::organizationName();
     if (!org.isEmpty())
         path += QLatin1Char('/') + org;
     const QString appName = QCoreApplication::applicationName();
     if (!appName.isEmpty())
         path += QLatin1Char('/') + appName;
+#else
+    Q_UNUSED(path);
+#endif
 }
 
 QString QStandardPaths::writableLocation(StandardLocation type)
@@ -141,6 +148,7 @@ QString QStandardPaths::writableLocation(StandardLocation type)
         break;
     }
 
+#ifndef QT_BOOTSTRAPPED
     // http://www.freedesktop.org/wiki/Software/xdg-user-dirs
     QString xdgConfigHome = QFile::decodeName(qgetenv("XDG_CONFIG_HOME"));
     if (xdgConfigHome.isEmpty())
@@ -199,6 +207,7 @@ QString QStandardPaths::writableLocation(StandardLocation type)
             }
         }
     }
+#endif
 
     QString path;
     switch (type) {
index d7d73ee..bcd5097 100644 (file)
 #include <qdir.h>
 #include <private/qsystemlibrary_p.h>
 #include <qstringlist.h>
+
+#ifndef QT_BOOTSTRAPPED
 #include <qcoreapplication.h>
+#endif
 
 #include <qt_windows.h>
 #include <shlobj.h>
@@ -107,12 +110,14 @@ QString QStandardPaths::writableLocation(StandardLocation type)
             result = convertCharArray(path);
         if (isTestModeEnabled())
             result += QLatin1String("/qttest");
+#ifndef QT_BOOTSTRAPPED
         if (type != GenericDataLocation) {
             if (!QCoreApplication::organizationName().isEmpty())
                 result += QLatin1Char('/') + QCoreApplication::organizationName();
             if (!QCoreApplication::applicationName().isEmpty())
                 result += QLatin1Char('/') + QCoreApplication::applicationName();
         }
+#endif
         break;
 
     case DesktopLocation:
@@ -189,10 +194,12 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
             if (SHGetSpecialFolderPath(0, path, CSIDL_COMMON_APPDATA, FALSE)) {
                 QString result = convertCharArray(path);
                 if (type != GenericDataLocation) {
+#ifndef QT_BOOTSTRAPPED
                     if (!QCoreApplication::organizationName().isEmpty())
                         result += QLatin1Char('/') + QCoreApplication::organizationName();
                     if (!QCoreApplication::applicationName().isEmpty())
                         result += QLatin1Char('/') + QCoreApplication::applicationName();
+#endif
                 }
                 dirs.append(result);
             }