From f3262b4ddcb1a15695892c834e965b66586b3f3f Mon Sep 17 00:00:00 2001 From: BogDan Vatra <bogdan@kdab.com> Date: Sat, 16 Jan 2016 16:32:28 +0200 Subject: [PATCH] Add androidExtraLibs paths to solibSearchPath Change-Id: I6935681fd22350f7ab849a0ad2ca34d473a0b95b Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com> --- src/plugins/android/androiddebugsupport.cpp | 9 +++++++++ src/plugins/android/androidqtsupport.h | 1 + .../qmakeandroidsupport/qmakeandroidsupport.cpp | 11 +++++++++++ src/plugins/qmakeandroidsupport/qmakeandroidsupport.h | 1 + 4 files changed, 22 insertions(+) diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index d4911d4f160..a8d87a5ec3f 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -81,6 +81,14 @@ static QStringList qtSoPaths(QtSupport::BaseQtVersion *qtVersion) return paths.toList(); } +static QStringList uniquePaths(const QStringList &files) +{ + QSet<QString> paths; + foreach (const QString &file, files) + paths<<QFileInfo(file).absolutePath(); + return paths.toList(); +} + RunControl *AndroidDebugSupport::createDebugRunControl(AndroidRunConfiguration *runConfig, QString *errorMessage) { Target *target = runConfig->target(); @@ -99,6 +107,7 @@ RunControl *AndroidDebugSupport::createDebugRunControl(AndroidRunConfiguration * params.solibSearchPath = AndroidManager::androidQtSupport(target)->soLibSearchPath(target); QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(kit); params.solibSearchPath.append(qtSoPaths(version)); + params.solibSearchPath.append(uniquePaths(AndroidManager::androidQtSupport(target)->androidExtraLibs(target))); } if (aspect->useQmlDebugger()) { QTcpServer server; diff --git a/src/plugins/android/androidqtsupport.h b/src/plugins/android/androidqtsupport.h index b6e2867f5a5..f6aaca184de 100644 --- a/src/plugins/android/androidqtsupport.h +++ b/src/plugins/android/androidqtsupport.h @@ -61,6 +61,7 @@ public: public: virtual bool canHandle(const ProjectExplorer::Target *target) const = 0; virtual QStringList soLibSearchPath(const ProjectExplorer::Target *target) const = 0; + virtual QStringList androidExtraLibs(const ProjectExplorer::Target *target) const = 0; virtual QStringList projectTargetApplications(const ProjectExplorer::Target *target) const = 0; virtual Utils::FileName apkPath(ProjectExplorer::Target *target) const; virtual Utils::FileName androiddeployqtPath(ProjectExplorer::Target *target) const = 0; diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp index 23b190c2c1a..32bdd7aecc8 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp +++ b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.cpp @@ -72,6 +72,17 @@ QStringList QmakeAndroidSupport::soLibSearchPath(const ProjectExplorer::Target * return res; } +QStringList QmakeAndroidSupport::androidExtraLibs(const ProjectExplorer::Target *target) const +{ + ProjectExplorer::RunConfiguration *rc = target->activeRunConfiguration(); + QmakeAndroidRunConfiguration *qarc = qobject_cast<QmakeAndroidRunConfiguration *>(rc); + if (!qarc) + return QStringList(); + auto project = static_cast<QmakeProject *>(target->project()); + QmakeProFileNode *node = project->rootQmakeProjectNode()->findProFileFor(qarc->proFilePath()); + return node->variableValue(QmakeProjectManager::AndroidExtraLibs); +} + QStringList QmakeAndroidSupport::projectTargetApplications(const ProjectExplorer::Target *target) const { QStringList apps; diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.h b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.h index 5c19c9498cb..df0adc9e5b9 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.h +++ b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.h @@ -43,6 +43,7 @@ class QmakeAndroidSupport : public Android::AndroidQtSupport public: bool canHandle(const ProjectExplorer::Target *target) const; QStringList soLibSearchPath(const ProjectExplorer::Target *target) const; + QStringList androidExtraLibs(const ProjectExplorer::Target *target) const override; QStringList projectTargetApplications(const ProjectExplorer::Target *target) const; Utils::FileName androiddeployqtPath(ProjectExplorer::Target *target) const; Utils::FileName androiddeployJsonPath(ProjectExplorer::Target *target) const; -- GitLab