Merge remote-tracking branch 'origin/11.0'

Conflicts:
	src/plugins/debugger/debuggeritemmanager.cpp

Change-Id: I9d99d13feff9315f52eacbd84857c63cb69bf804
This commit is contained in:
Eike Ziller
2023-07-03 10:24:09 +02:00
77 changed files with 4785 additions and 1883 deletions

View File

@@ -27,6 +27,7 @@ const char ANDROID_KIT_NDK[] = "Android.NDK";
const char ANDROID_KIT_SDK[] = "Android.SDK";
const char ANDROID_BUILD_DIRECTORY[] = "android-build";
const char ANDROID_APP_PROCESS_DIRECTORY[] = "android-app-process";
const char JAVA_EDITOR_ID[] = "java.editor";
const char JLS_SETTINGS_ID[] = "Java::JLSSettingsID";
const char JAVA_MIMETYPE[] = "text/x-java";

View File

@@ -138,7 +138,7 @@ void AndroidDebugSupport::start()
FilePath::removeDuplicates(solibSearchPath);
setSolibSearchPath(solibSearchPath);
qCDebug(androidDebugSupportLog).noquote() << "SoLibSearchPath: " << solibSearchPath;
setSymbolFile(buildDir.pathAppended("app_process"));
setSymbolFile(AndroidManager::androidAppProcessDir(target).pathAppended("app_process"));
setSkipExecutableValidation(true);
setUseExtendedRemote(true);
QString devicePreferredAbi = AndroidManager::apkDevicePreferredAbi(target);

View File

@@ -512,6 +512,13 @@ void AndroidDeployQtStep::runImpl(QPromise<bool> &promise)
itr.value().removeFile();
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr) {
const FilePath parentDir = itr.value().parentDir();
if (!parentDir.ensureWritableDir()) {
const QString error = QString("Package deploy: Unable to create directory %1.")
.arg(parentDir.nativePath());
reportWarningOrError(error, Task::Error);
}
runCommand({m_adbPath,
AndroidDeviceInfo::adbSelector(m_serialNumber)
<< "pull" << itr.key() << itr.value().nativePath()});
@@ -528,7 +535,7 @@ void AndroidDeployQtStep::runImpl(QPromise<bool> &promise)
void AndroidDeployQtStep::gatherFilesToPull()
{
m_filesToPull.clear();
const FilePath buildDir = AndroidManager::buildDirectory(target());
const FilePath appProcessDir = AndroidManager::androidAppProcessDir(target());
if (!m_deviceInfo.isValid())
return;
@@ -538,16 +545,16 @@ void AndroidDeployQtStep::gatherFilesToPull()
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";
m_filesToPull["/system/bin/app_process64"] = appProcessDir / "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"] = appProcessDir / "app_process";
m_filesToPull["/system/bin/app_process"] = appProcessDir / "app_process";
}
m_filesToPull["/system/bin/" + linkerName] = buildDir / linkerName;
m_filesToPull["/system/" + libDirName + "/libc.so"] = buildDir / "libc.so";
m_filesToPull["/system/bin/" + linkerName] = appProcessDir / linkerName;
m_filesToPull["/system/" + libDirName + "/libc.so"] = appProcessDir / "libc.so";
for (auto itr = m_filesToPull.constBegin(); itr != m_filesToPull.constEnd(); ++itr)
qCDebug(deployStepLog).noquote() << "Pulling file from device:" << itr.key()

View File

@@ -229,6 +229,11 @@ FilePath AndroidManager::androidBuildDirectory(const Target *target)
return buildDirectory(target) / Constants::ANDROID_BUILD_DIRECTORY;
}
FilePath AndroidManager::androidAppProcessDir(const Target *target)
{
return buildDirectory(target) / Constants::ANDROID_APP_PROCESS_DIRECTORY;
}
bool AndroidManager::isQt5CmakeProject(const ProjectExplorer::Target *target)
{
const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());

View File

@@ -74,6 +74,7 @@ public:
static bool isQt5CmakeProject(const ProjectExplorer::Target *target);
static Utils::FilePath androidBuildDirectory(const ProjectExplorer::Target *target);
static Utils::FilePath androidAppProcessDir(const ProjectExplorer::Target *target);
static Utils::FilePath buildDirectory(const ProjectExplorer::Target *target);
static Utils::FilePath manifestPath(const ProjectExplorer::Target *target);
static void setManifestPath(ProjectExplorer::Target *target, const Utils::FilePath &path);