aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVikas Pachdha <vikas.pachdha@qt.io>2018-03-12 18:03:42 +0100
committerVikas Pachdha <vikas.pachdha@qt.io>2018-03-13 11:40:52 +0000
commit1fae424f83282d598ce0e6b1cd3f2767332f0097 (patch)
treee82249e8fde4c3d98474698828de8441a30d3a92 /src
parent1d2b476320b8ba579587455bbd34b1ef485711e1 (diff)
Android: Pull linker from device/emulator
Task-number: QTCREATORBUG-19931 Change-Id: If8f0b5fe767f9e816ac5163142d4fa38e0f6540f Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp52
-rw-r--r--src/plugins/android/androiddeployqtstep.h3
2 files changed, 24 insertions, 31 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index 9d497ba52a..4207c25ada 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -139,25 +139,34 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
m_avdName = info.avdname;
m_serialNumber = info.serialNumber;
- m_appProcessBinaries.clear();
- m_libdir = QLatin1String("lib");
+ ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration();
+ m_filesToPull.clear();
+ QString buildDir = bc->buildDirectory().toString();
+ if (!buildDir.endsWith("/")) {
+ buildDir += "/";
+ }
+ QString linkerName("linker");
+ QString libDirName("lib");
if (info.cpuAbi.contains(QLatin1String("arm64-v8a")) ||
info.cpuAbi.contains(QLatin1String("x86_64"))) {
ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit(), ProjectExplorer::Constants::CXX_LANGUAGE_ID);
if (tc && tc->targetAbi().wordWidth() == 64) {
- m_appProcessBinaries << QLatin1String("/system/bin/app_process64");
- m_libdir += QLatin1String("64");
+ m_filesToPull["/system/bin/app_process64"] = buildDir + "app_process";
+ libDirName = "lib64";
+ linkerName = "linker64";
} else {
- m_appProcessBinaries << QLatin1String("/system/bin/app_process32");
+ m_filesToPull["/system/bin/app_process32"] = buildDir + "app_process";
}
} else {
m_appProcessBinaries << QLatin1String("/system/bin/app_process32")
<< QLatin1String("/system/bin/app_process");
}
+ m_filesToPull["/system/bin/" + linkerName] = buildDir + linkerName;
+ m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir + "libc.so";
+
AndroidManager::setDeviceSerialNumber(target(), m_serialNumber);
- ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration();
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target()->kit());
if (!version)
@@ -213,8 +222,6 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
}
m_environment = bc->environment();
- m_buildDirectory = bc->buildDirectory().toString();
-
m_adbPath = AndroidConfigurations::currentConfig().adbToolPath().toString();
AndroidAvdManager avdManager;
@@ -389,31 +396,18 @@ void AndroidDeployQtStep::run(QFutureInterface<bool> &fi)
}
emit addOutput(tr("Pulling files necessary for debugging."), OutputFormat::NormalMessage);
-
- QString localAppProcessFile = QString::fromLatin1("%1/app_process").arg(m_buildDirectory);
- QFile::remove(localAppProcessFile);
-
- foreach (const QString &remoteAppProcessFile, m_appProcessBinaries) {
+ for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
+ QFile::remove(itr.value());
runCommand(m_adbPath,
AndroidDeviceInfo::adbSelector(m_serialNumber)
- << QLatin1String("pull") << remoteAppProcessFile
- << localAppProcessFile);
- if (QFileInfo::exists(localAppProcessFile))
- break;
- }
-
- if (!QFileInfo::exists(localAppProcessFile)) {
- returnValue = Failure;
- emit addOutput(tr("Package deploy: Failed to pull \"%1\" to \"%2\".")
- .arg(m_appProcessBinaries.join(QLatin1String("\", \"")))
- .arg(localAppProcessFile), OutputFormat::ErrorMessage);
+ << "pull" << itr.key() << itr.value());
+ if (!QFileInfo::exists(itr.value())) {
+ emit addOutput(tr("Package deploy: Failed to pull \"%1\" to \"%2\".")
+ .arg(itr.key())
+ .arg(itr.value()), OutputFormat::ErrorMessage);
+ }
}
- runCommand(m_adbPath,
- AndroidDeviceInfo::adbSelector(m_serialNumber) << QLatin1String("pull")
- << QLatin1String("/system/") + m_libdir + QLatin1String("/libc.so")
- << QString::fromLatin1("%1/libc.so").arg(m_buildDirectory));
-
reportRunResult(fi, returnValue == NoError);
}
diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h
index 38ba56e12e..fad99d545a 100644
--- a/src/plugins/android/androiddeployqtstep.h
+++ b/src/plugins/android/androiddeployqtstep.h
@@ -113,11 +113,10 @@ private:
Utils::FileName m_manifestName;
QString m_serialNumber;
- QString m_buildDirectory;
QString m_avdName;
QString m_apkPath;
+ QMap<QString, QString> m_filesToPull;
QStringList m_appProcessBinaries;
- QString m_libdir;
QString m_targetArch;
bool m_uninstallPreviousPackage = false;