Add androidExtraLibs paths to solibSearchPath

Change-Id: I6935681fd22350f7ab849a0ad2ca34d473a0b95b
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
BogDan Vatra
2016-01-16 16:32:28 +02:00
parent f8d4e4954b
commit f3262b4ddc
4 changed files with 22 additions and 0 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;