aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2021-10-26 09:13:24 +0200
committerEike Ziller <eike.ziller@qt.io>2021-10-26 09:13:24 +0200
commite8ba5b75cfb270b8fd661d5d6e3b68f2a98c5e0d (patch)
tree905519a8107a9eedf7413c941cc8311f5472bffc /src/plugins/android
parent712caf10dcadbacda7487a6836f949c7964002f2 (diff)
parentfbcb45c105b7e8aec5eab382c05774448c1e6e13 (diff)
Merge remote-tracking branch 'origin/5.0' into 6.0
Conflicts: src/plugins/android/androidpackageinstallationstep.cpp src/plugins/cppeditor/cppmodelmanager.cpp Change-Id: I3bad38e1cfe717e98209d49461c9813a8e555eff
Diffstat (limited to 'src/plugins/android')
-rw-r--r--src/plugins/android/androidmanager.cpp15
-rw-r--r--src/plugins/android/androidpackageinstallationstep.cpp20
2 files changed, 16 insertions, 19 deletions
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index 9b623baa8d6..16ff0dc5139 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -268,7 +268,20 @@ FilePath AndroidManager::buildDirectory(const Target *target)
{
if (const BuildSystem *bs = target->buildSystem()) {
const QString buildKey = target->activeBuildKey();
- const FilePath buildDir = bs->buildTarget(target->activeBuildKey()).workingDirectory;
+
+ // Get the target build dir based on the settings file path
+ FilePath buildDir;
+ const ProjectNode *node = target->project()->findNodeForBuildKey(buildKey);
+ if (node) {
+ const QString settingsFile = node->data(Constants::AndroidDeploySettingsFile).toString();
+ buildDir = FilePath::fromUserInput(settingsFile).parentDir();
+ }
+
+ if (!buildDir.isEmpty())
+ return buildDir;
+
+ // Otherwise fallback to target working dir
+ buildDir = bs->buildTarget(target->activeBuildKey()).workingDirectory;
if (isQt5CmakeProject(target)) {
// Return the main build dir and not the android libs dir
const QString libsDir = QString(Constants::ANDROID_BUILD_DIRECTORY) + "/libs";
diff --git a/src/plugins/android/androidpackageinstallationstep.cpp b/src/plugins/android/androidpackageinstallationstep.cpp
index e1eb82e0ccc..17e641443ae 100644
--- a/src/plugins/android/androidpackageinstallationstep.cpp
+++ b/src/plugins/android/androidpackageinstallationstep.cpp
@@ -67,10 +67,6 @@ public:
AndroidPackageInstallationStep(BuildStepList *bsl, Id id);
QString nativeAndroidBuildPath() const;
-
- Utils::FilePath androidBuildDirectory() const;
- Utils::FilePath buildDirectory() const;
-
private:
bool init() final;
void setupOutputFormatter(OutputFormatter *formatter) final;
@@ -108,7 +104,7 @@ bool AndroidPackageInstallationStep::init()
processParameters()->setCommandLine(cmd);
// This is useful when running an example target from a Qt module project.
- processParameters()->setWorkingDirectory(buildDirectory());
+ processParameters()->setWorkingDirectory(AndroidManager::buildDirectory(target()));
m_androidDirsToClean.clear();
// don't remove gradle's cache, it takes ages to rebuild it.
@@ -120,7 +116,7 @@ bool AndroidPackageInstallationStep::init()
QString AndroidPackageInstallationStep::nativeAndroidBuildPath() const
{
- QString buildPath = androidBuildDirectory().toString();
+ QString buildPath = AndroidManager::androidBuildDirectory(target()).toString();
if (HostOsInfo::isWindowsHost())
if (buildEnvironment().searchInPath("sh.exe").isEmpty())
buildPath = QDir::toNativeSeparators(buildPath);
@@ -128,18 +124,6 @@ QString AndroidPackageInstallationStep::nativeAndroidBuildPath() const
return buildPath;
}
-FilePath AndroidPackageInstallationStep::androidBuildDirectory() const
-{
- return buildDirectory() / Constants::ANDROID_BUILD_DIRECTORY;
-}
-
-FilePath AndroidPackageInstallationStep::buildDirectory() const
-{
- if (const BuildSystem *bs = buildSystem())
- return bs->buildTarget(target()->activeBuildKey()).workingDirectory;
- return {};
-}
-
void AndroidPackageInstallationStep::setupOutputFormatter(OutputFormatter *formatter)
{
formatter->addLineParser(new GnuMakeParser);