aboutsummaryrefslogtreecommitdiffstats
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
parentc56a106dbeb87239272b21c7290f705b8a7e3b19 (diff)
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>
-rw-r--r--src/plugins/android/androidqtversion.cpp2
-rw-r--r--src/plugins/ios/iosqtversion.cpp2
-rw-r--r--src/plugins/qnx/qnxabstractqtversion.cpp2
-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
-rw-r--r--src/plugins/remotelinux/embeddedlinuxqtversion.cpp2
8 files changed, 27 insertions, 23 deletions
diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp
index 360349eaf4..b1e1dc6fcd 100644
--- a/src/plugins/android/androidqtversion.cpp
+++ b/src/plugins/android/androidqtversion.cpp
@@ -92,7 +92,7 @@ QString AndroidQtVersion::invalidReason() const
QList<ProjectExplorer::Abi> AndroidQtVersion::detectQtAbis() const
{
- QList<ProjectExplorer::Abi> abis = qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ QList<ProjectExplorer::Abi> abis = qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
for (int i = 0; i < abis.count(); ++i) {
abis[i] = Abi(abis.at(i).architecture(),
abis.at(i).os(),
diff --git a/src/plugins/ios/iosqtversion.cpp b/src/plugins/ios/iosqtversion.cpp
index dbd50afa06..8475c0ca47 100644
--- a/src/plugins/ios/iosqtversion.cpp
+++ b/src/plugins/ios/iosqtversion.cpp
@@ -90,7 +90,7 @@ QString IosQtVersion::invalidReason() const
QList<ProjectExplorer::Abi> IosQtVersion::detectQtAbis() const
{
- QList<ProjectExplorer::Abi> abis = qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ QList<ProjectExplorer::Abi> abis = qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
for (int i = 0; i < abis.count(); ++i) {
abis[i] = Abi(abis.at(i).architecture(),
abis.at(i).os(),
diff --git a/src/plugins/qnx/qnxabstractqtversion.cpp b/src/plugins/qnx/qnxabstractqtversion.cpp
index b9b40d0e9c..06d6cc1856 100644
--- a/src/plugins/qnx/qnxabstractqtversion.cpp
+++ b/src/plugins/qnx/qnxabstractqtversion.cpp
@@ -90,7 +90,7 @@ void QnxAbstractQtVersion::fromMap(const QVariantMap &map)
QList<ProjectExplorer::Abi> QnxAbstractQtVersion::detectQtAbis() const
{
ensureMkSpecParsed();
- return qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ return qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
}
void QnxAbstractQtVersion::addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const
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
diff --git a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp
index c9b2ff5fe3..ed98f69c16 100644
--- a/src/plugins/remotelinux/embeddedlinuxqtversion.cpp
+++ b/src/plugins/remotelinux/embeddedlinuxqtversion.cpp
@@ -63,7 +63,7 @@ QString EmbeddedLinuxQtVersion::type() const
QList<ProjectExplorer::Abi> EmbeddedLinuxQtVersion::detectQtAbis() const
{
- return qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ return qtAbisFromLibrary(qtCorePaths(versionInfo(), qtVersionString()));
}
QString EmbeddedLinuxQtVersion::description() const