summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@digia.com>2013-10-31 19:35:39 +0100
committerFawzi Mohamed <fawzi.mohamed@digia.com>2013-11-01 12:31:23 +0100
commit08bb1471531fb3039f6c223f51921dee936c197c (patch)
tree6ab7f87cd7e613c0fe9657c71147cbde33ec8de4 /src/plugins/qtsupport
parentc56a106dbeb87239272b21c7290f705b8a7e3b19 (diff)
downloadqt-creator-08bb1471531fb3039f6c223f51921dee936c197c.tar.gz
qtsupport: collect the Abi of all QtCore libraries
ios now uses libQt5Core_iphonesimulator.a and libQt5Core.a for device and simulator, this changes detects both architectures. Change-Id: I0e2883c06355eb2b75aeeba4365c8aea14bb8ced Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Diffstat (limited to 'src/plugins/qtsupport')
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp33
-rw-r--r--src/plugins/qtsupport/baseqtversion.h5
-rw-r--r--src/plugins/qtsupport/desktopqtversion.cpp2
-rw-r--r--src/plugins/qtsupport/simulatorqtversion.cpp2
4 files changed, 23 insertions, 19 deletions
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 7e08dc3493..c8c0d94236 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -1517,13 +1517,14 @@ void BaseQtVersion::buildDebuggingHelper(ToolChain *tc, int tools)
ProgressManager::addTask(task, taskName, "Qt::BuildHelpers");
}
-FileName BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString)
+QList<FileName> BaseQtVersion::qtCorePaths(const QHash<QString,QString> &versionInfo, const QString &versionString)
{
QStringList dirs;
dirs << qmakeProperty(versionInfo, "QT_INSTALL_LIBS")
<< qmakeProperty(versionInfo, "QT_INSTALL_BINS");
- QFileInfoList staticLibs;
+ QList<FileName> staticLibs;
+ QList<FileName> dynamicLibs;
foreach (const QString &dir, dirs) {
if (dir.isEmpty())
continue;
@@ -1536,33 +1537,35 @@ FileName BaseQtVersion::qtCorePath(const QHash<QString,QString> &versionInfo, co
&& file.endsWith(QLatin1String(".framework"))) {
// handle Framework
FileName lib(info);
- lib.appendPath(file.left(file.lastIndexOf(QLatin1Char('.'))));
- return lib;
- }
- if (info.isReadable()) {
+ dynamicLibs.append(lib.appendPath(file.left(file.lastIndexOf(QLatin1Char('.')))));
+ } else if (info.isReadable()) {
if (file.startsWith(QLatin1String("libQtCore"))
|| file.startsWith(QLatin1String("libQt5Core"))
|| file.startsWith(QLatin1String("QtCore"))
|| file.startsWith(QLatin1String("Qt5Core"))) {
- // Only handle static libs if we can not find dynamic ones:
if (file.endsWith(QLatin1String(".a")) || file.endsWith(QLatin1String(".lib")))
- staticLibs.append(info);
+ staticLibs.append(FileName(info));
else if (file.endsWith(QLatin1String(".dll"))
|| file.endsWith(QString::fromLatin1(".so.") + versionString)
|| file.endsWith(QLatin1String(".so"))
|| file.endsWith(QLatin1Char('.') + versionString + QLatin1String(".dylib")))
- return FileName(info);
+ dynamicLibs.append(FileName(info));
}
}
}
}
- // Return path to first static library found:
- if (!staticLibs.isEmpty())
- return FileName(staticLibs.at(0));
- return FileName();
+ // Only handle static libs if we can not find dynamic ones:
+ if (dynamicLibs.isEmpty())
+ return staticLibs;
+ return dynamicLibs;
}
-QList<Abi> BaseQtVersion::qtAbisFromLibrary(const FileName &coreLibrary)
+QList<Abi> BaseQtVersion::qtAbisFromLibrary(const QList<FileName> &coreLibraries)
{
- return Abi::abisOfBinary(coreLibrary);
+ QList<Abi> res;
+ foreach (const FileName &library, coreLibraries)
+ foreach (const Abi &abi, Abi::abisOfBinary(library))
+ if (!res.contains(abi))
+ res.append(abi);
+ return res;
}
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index 591717d90f..40bb590812 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -247,8 +247,9 @@ protected:
virtual QList<ProjectExplorer::Task> reportIssuesImpl(const QString &proFile, const QString &buildDir) const;
// helper function for desktop and simulator to figure out the supported abis based on the libraries
- static Utils::FileName qtCorePath(const QHash<QString,QString> &versionInfo, const QString &versionString);
- static QList<ProjectExplorer::Abi> qtAbisFromLibrary(const Utils::FileName &coreLibrary);
+ static QList<Utils::FileName> qtCorePaths(const QHash<QString,QString> &versionInfo,
+ const QString &versionString);
+ static QList<ProjectExplorer::Abi> qtAbisFromLibrary(const QList<Utils::FileName> &coreLibraries);
void ensureMkSpecParsed() const;
virtual void parseMkSpec(ProFileEvaluator *) const;
diff --git a/src/plugins/qtsupport/desktopqtversion.cpp b/src/plugins/qtsupport/desktopqtversion.cpp
index 8e4943fbe2..dbb2d6dc48 100644
--- a/src/plugins/qtsupport/desktopqtversion.cpp
+++ b/src/plugins/qtsupport/desktopqtversion.cpp
@@ -76,7 +76,7 @@ QStringList DesktopQtVersion::warningReason() const
QList<ProjectExplorer::Abi> DesktopQtVersion::detectQtAbis() const
{
- return qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ return qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
}
QString DesktopQtVersion::description() const
diff --git a/src/plugins/qtsupport/simulatorqtversion.cpp b/src/plugins/qtsupport/simulatorqtversion.cpp
index 8c8a73e63e..de77497610 100644
--- a/src/plugins/qtsupport/simulatorqtversion.cpp
+++ b/src/plugins/qtsupport/simulatorqtversion.cpp
@@ -77,7 +77,7 @@ QStringList SimulatorQtVersion::warningReason() const
QList<ProjectExplorer::Abi> SimulatorQtVersion::detectQtAbis() const
{
ensureMkSpecParsed();
- return qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ return qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
}
QString SimulatorQtVersion::description() const