aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androiddeployqtstep.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2022-11-09 17:38:24 +0100
committerhjk <hjk@qt.io>2022-11-14 16:51:33 +0000
commit90ee349980e64d0510515d3db087bc36322f325a (patch)
treec64523e28691bd37bc299d3ae5377c853cbc24f9 /src/plugins/android/androiddeployqtstep.cpp
parent3f0f9a63c0177e034c659f23882f309c00967d55 (diff)
Android: Use FilePath as adb pull target for the deploystep
Helpful when the build dir is not on the local host. Change-Id: I511ed7e4389a9a4dd5b5504bb35e21aadfb20285 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src/plugins/android/androiddeployqtstep.cpp')
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp41
1 files changed, 16 insertions, 25 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index 0d33bce4c0..f032f84986 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -44,17 +44,13 @@
#include <QMessageBox>
#include <QPushButton>
#include <QRegularExpression>
-#include <QVBoxLayout>
using namespace ProjectExplorer;
using namespace Utils;
-namespace Android {
-namespace Internal {
+namespace Android::Internal {
-namespace {
static Q_LOGGING_CATEGORY(deployStepLog, "qtc.android.build.androiddeployqtstep", QtWarningMsg)
-}
const QLatin1String UninstallPreviousPackageKey("UninstallPreviousPackage");
const QLatin1String InstallFailedInconsistentCertificatesString("INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES");
@@ -435,18 +431,17 @@ bool AndroidDeployQtStep::runImpl()
// Note that values are not necessarily unique, e.g. app_process is looked up in several
// directories
- for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
- QFile::remove(itr.value());
- }
+ for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
+ itr.value().removeFile();
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
runCommand({m_adbPath,
AndroidDeviceInfo::adbSelector(m_serialNumber)
- << "pull" << itr.key() << itr.value()});
- if (!QFileInfo::exists(itr.value())) {
+ << "pull" << itr.key() << itr.value().nativePath()});
+ if (!itr.value().exists()) {
const QString error = Tr::tr("Package deploy: Failed to pull \"%1\" to \"%2\".")
.arg(itr.key())
- .arg(itr.value());
+ .arg(itr.value().nativePath());
reportWarningOrError(error, Task::Error);
}
}
@@ -457,29 +452,26 @@ bool AndroidDeployQtStep::runImpl()
void AndroidDeployQtStep::gatherFilesToPull()
{
m_filesToPull.clear();
- QString buildDir = AndroidManager::buildDirectory(target()).toString();
- if (!buildDir.endsWith("/")) {
- buildDir += "/";
- }
+ const FilePath buildDir = AndroidManager::buildDirectory(target());
if (!m_deviceInfo.isValid())
return;
QString linkerName("linker");
QString libDirName("lib");
- auto preferreABI = AndroidManager::apkDevicePreferredAbi(target());
- if (preferreABI == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A
- || preferreABI == ProjectExplorer::Constants::ANDROID_ABI_X86_64) {
- m_filesToPull["/system/bin/app_process64"] = buildDir + "app_process";
+ const QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target());
+ if (preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A
+ || preferredAbi == ProjectExplorer::Constants::ANDROID_ABI_X86_64) {
+ m_filesToPull["/system/bin/app_process64"] = buildDir / "app_process";
libDirName = "lib64";
linkerName = "linker64";
} else {
- m_filesToPull["/system/bin/app_process32"] = buildDir + "app_process";
- m_filesToPull["/system/bin/app_process"] = buildDir + "app_process";
+ m_filesToPull["/system/bin/app_process32"] = buildDir / "app_process";
+ m_filesToPull["/system/bin/app_process"] = buildDir / "app_process";
}
- m_filesToPull["/system/bin/" + linkerName] = buildDir + linkerName;
- m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir + "libc.so";
+ m_filesToPull["/system/bin/" + linkerName] = buildDir / linkerName;
+ m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir / "libc.so";
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
qCDebug(deployStepLog).noquote() << "Pulling file from device:" << itr.key()
@@ -587,5 +579,4 @@ AndroidDeployQtStepFactory::AndroidDeployQtStepFactory()
setDisplayName(Tr::tr("Deploy to Android device"));
}
-} // Internal
-} // Android
+} // Android::Internal