From 5384434dce79cff092795bf5647c9c16099f9300 Mon Sep 17 00:00:00 2001
From: kh1 <qt-info@nokia.com>
Date: Thu, 29 Oct 2009 12:04:43 +0100
Subject: [PATCH] We cannot hardcode the type of debug library, so check for
 all. While cross compiling from windows to maemo we build the debug helper as
 .so instead of .dll, though the ifdef would always make the question about
 the helpers being build return false.

Reviewed-by: dt
---
 .../projectexplorer/debugginghelper.cpp       | 40 +++++++++++++------
 1 file changed, 27 insertions(+), 13 deletions(-)

diff --git a/src/plugins/projectexplorer/debugginghelper.cpp b/src/plugins/projectexplorer/debugginghelper.cpp
index 61c5b4538d1..de4c5abb095 100644
--- a/src/plugins/projectexplorer/debugginghelper.cpp
+++ b/src/plugins/projectexplorer/debugginghelper.cpp
@@ -80,22 +80,34 @@ QString DebuggingHelperLibrary::qtInstallDataDir(const QString &qmakePath)
 
 // Debugging Helper Library
 
-static inline QString helperFilePath(const QString &directory)
+static inline bool getHelperFileInfoFor(const QString &directory, QFileInfo* info)
 {
-#if defined(Q_OS_WIN)
-    return directory + QLatin1String("debug/gdbmacros.dll");
-#elif defined(Q_OS_MAC)
-    return directory + QLatin1String("libgdbmacros.dylib");
-#else // generic UNIX
-    return directory + QLatin1String("libgdbmacros.so");
-#endif
+    if (!info)
+        return false;
+
+    info->setFile(directory + QLatin1String("debug/gdbmacros.dll"));
+    if (info->exists())
+        return true;
+
+    info->setFile(directory + QLatin1String("libgdbmacros.dylib"));
+    if (info->exists())
+        return true;
+
+    info->setFile(directory + QLatin1String("libgdbmacros.so"));
+    if (info->exists())
+        return true;
+
+    return false;
 }
 
 QStringList DebuggingHelperLibrary::debuggingHelperLibraryLocationsByInstallData(const QString &qtInstallData)
 {
     QStringList result;
-    foreach(const QString &directory, debuggingHelperLibraryDirectories(qtInstallData))
-        result << QFileInfo(helperFilePath(directory)).filePath();
+    QFileInfo fileInfo;
+    foreach(const QString &directory, debuggingHelperLibraryDirectories(qtInstallData)) {
+        if (getHelperFileInfoFor(directory, &fileInfo))
+            result << fileInfo.filePath();
+    }
     return result;
 }
 
@@ -104,10 +116,12 @@ QString DebuggingHelperLibrary::debuggingHelperLibraryByInstallData(const QStrin
     const QString dumperSourcePath = Core::ICore::instance()->resourcePath() + QLatin1String("/gdbmacros/");
     QDateTime lastModified = QFileInfo(dumperSourcePath + "gdbmacros.cpp").lastModified();
 
+    QFileInfo fileInfo;
     foreach(const QString &directory, debuggingHelperLibraryDirectories(qtInstallData)) {
-        const QFileInfo fi(helperFilePath(directory));
-        if (fi.exists() && fi.lastModified() >= lastModified)
-            return fi.filePath();
+        if (getHelperFileInfoFor(directory, &fileInfo)) {
+            if (fileInfo.lastModified() >= lastModified)
+                return fileInfo.filePath();
+        }
     }
     return QString();
 }
-- 
GitLab