OSDN Git Service

qmldump: Use binary that's shipped with Qt if available.
authorChristian Kamm <christian.d.kamm@nokia.com>
Tue, 21 Jun 2011 12:03:14 +0000 (14:03 +0200)
committerChristian Kamm <christian.d.kamm@nokia.com>
Thu, 23 Jun 2011 09:19:52 +0000 (11:19 +0200)
Change-Id: Ia36dcc2596fbe6aef5014d03ed0303d3087ecc0b
Reviewed-on: http://codereview.qt.nokia.com/547
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
src/plugins/qtsupport/qmldumptool.cpp

index fda6d7c..3747ea2 100644 (file)
@@ -174,6 +174,17 @@ static inline QStringList validBinaryFilenames(bool debugBuild)
     return list;
 }
 
+static inline QStringList validPrebuiltFilenames(bool debugBuild)
+{
+    QStringList list = QStringList(QLatin1String("qmlplugindump"));
+    list.append(QLatin1String("qmlplugindump.app/Contents/MacOS/qmlplugindump"));
+    if (debugBuild)
+        list.prepend(QLatin1String("qmlplugindumpd.exe"));
+    else
+        list.prepend(QLatin1String("qmlplugindump.exe"));
+    return list;
+}
+
 static bool hasPrivateHeaders(const QString &qtInstallHeaders) {
     const QString header = qtInstallHeaders
             + QLatin1String("/QtDeclarative/private/qdeclarativemetatype_p.h");
@@ -239,6 +250,11 @@ QString QmlDumpTool::toolByInstallData(const QString &qtInstallData, const QStri
     if (!Core::ICore::instance())
         return QString();
 
+    // check for prebuilt binary first
+    QFileInfo fileInfo;
+    if (getHelperFileInfoFor(validPrebuiltFilenames(debugDump), qtInstallData + QLatin1String("/bin/"), &fileInfo))
+        return fileInfo.absoluteFilePath();
+
     const QStringList directories = installDirectories(qtInstallData);
     const QStringList binFilenames = validBinaryFilenames(debugDump);