summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2011-05-06 17:56:21 +0200
committerhjk <qtc-committer@nokia.com>2011-05-06 18:10:09 +0200
commitf90a4d2ee1632c106ee6f19dd3f5e2c7dd550bcd (patch)
treecb1b0943f265a1c4179bdc58bb1c5bf6bcc84ce4
parent8714d3ae43f23abe1ecfe83d77df214347944d46 (diff)
downloadqt-creator-f90a4d2ee1632c106ee6f19dd3f5e2c7dd550bcd.tar.gz
Fix ABI detection of static mingw libraries on windows
Task-number: QTCREATORBUG-4771 (cherry picked from commit fcf82b74b650238e4bdcda19fe45833e7a2b0e74)
-rw-r--r--src/plugins/projectexplorer/abi.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp
index 33ccbdb3f9..df264a7f91 100644
--- a/src/plugins/projectexplorer/abi.cpp
+++ b/src/plugins/projectexplorer/abi.cpp
@@ -506,8 +506,6 @@ QList<Abi> Abi::abisOfBinary(const QString &path)
if (!f.exists())
return tmp;
- bool windowsStatic = path.endsWith(QLatin1String(".lib"));
-
f.open(QFile::ReadOnly);
QByteArray data = f.read(1024);
if (data.size() >= 67
@@ -534,12 +532,11 @@ QList<Abi> Abi::abisOfBinary(const QString &path)
int toSkip = 60 + fileNameOffset;
offset += fileLength.toInt() + 60 /* header */;
- if (windowsStatic) {
- if (fileName == QLatin1String("/0 "))
- tmp = parseCoffHeader(data.mid(toSkip, 20));
- } else {
- tmp.append(abiOf(data.mid(toSkip)));
- }
+
+ tmp.append(abiOf(data.mid(toSkip)));
+ if (tmp.isEmpty() && fileName == QLatin1String("/0 "))
+ tmp = parseCoffHeader(data.mid(toSkip, 20)); // This might be windws...
+
if (!tmp.isEmpty()
&& tmp.at(0).binaryFormat() != Abi::MachOFormat)
break;
@@ -606,6 +603,9 @@ void ProjectExplorer::ProjectExplorerPlugin::testAbiOfBinary_data()
QTest::newRow("static QtCore: win msvc2008 (debug)")
<< QString::fromLatin1("%1/abi/static/win-msvc2008-debug.lib").arg(prefix)
<< (QStringList() << QString::fromLatin1("x86-windows-unknown-pe-32bit"));
+ QTest::newRow("static QtCore: win mingw")
+ << QString::fromLatin1("%1/abi/static/win-mingw.a").arg(prefix)
+ << (QStringList() << QString::fromLatin1("x86-windows-unknown-pe-32bit"));
QTest::newRow("static QtCore: mac (debug)")
<< QString::fromLatin1("%1/abi/static/mac-32bit-debug.a").arg(prefix)
<< (QStringList() << QString::fromLatin1("x86-macos-generic-mach_o-32bit"));