aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidrunnerworker.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-04-15 04:56:26 +0200
committerhjk <hjk@qt.io>2020-04-15 07:14:34 +0000
commit3a1dc3c3edda668e3d1707984e4a96d9a2a0b26d (patch)
treee16eb6dea02693846abe4893f1739c4b2bc5ce86 /src/plugins/android/androidrunnerworker.cpp
parent6d66733d50fd9929b7a856415f2c6244e2ceb7cd (diff)
Android: Move gdbserver path determination to androidrunnerworker.cpp
That's the only user, and it's easier to extend to handle LLDB there. Change-Id: I7ce236e2ff509b419d52b10d086a75ff0c2ea14b Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Diffstat (limited to 'src/plugins/android/androidrunnerworker.cpp')
-rw-r--r--src/plugins/android/androidrunnerworker.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp
index 5f0d4bbc52e..112de2d1a81 100644
--- a/src/plugins/android/androidrunnerworker.cpp
+++ b/src/plugins/android/androidrunnerworker.cpp
@@ -156,6 +156,26 @@ static void deleter(QProcess *p)
p->deleteLater();
}
+static QString gdbServerArch(const QString &androidAbi)
+{
+ if (androidAbi == "arm64-v8a")
+ return QString("arm64");
+ if (androidAbi == "armeabi-v7a")
+ return QString("arm");
+ // That's correct for "x86_64" and "x86", and best guess at anything that will evolve:
+ return androidAbi;
+}
+
+static FilePath gdbServer(const QString &androidAbi, const QtSupport::BaseQtVersion *qtVersion)
+{
+ const FilePath path = AndroidConfigurations::currentConfig().ndkLocation(qtVersion)
+ .pathAppended(QString("prebuilt/android-%1/gdbserver/gdbserver")
+ .arg(gdbServerArch(androidAbi)));
+ if (path.exists())
+ return path;
+ return {};
+}
+
AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packageName)
: m_packageName(packageName)
, m_adbLogcatProcess(nullptr, deleter)
@@ -228,8 +248,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target);
if (!preferredAbi.isEmpty())
- m_debugServerPath = AndroidConfigurations::currentConfig()
- .gdbServer(preferredAbi, version).toString();
+ m_debugServerPath = gdbServer(preferredAbi, version).toString();
m_useAppParamsForQmlDebugger = version->qtVersion() >= QtSupport::QtVersionNumber(5, 12);
}