summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-11-19 17:25:32 +0100
committerDaniel Teske <daniel.teske@digia.com>2013-11-19 18:21:33 +0100
commit721d6546a63aa26449a0a38ee16355604a4af3ce (patch)
treed2ab46129c4904a7c4b9d876da0b48597b321cff /src
parentc9c0f801471bcabd6443d3a04cd4fc6c85924930 (diff)
downloadqt-creator-721d6546a63aa26449a0a38ee16355604a4af3ce.tar.gz
Android: android.bat needs a special environment
See the below task for details: Task-number: QTCREATORBUG-10575 Change-Id: I7756d8780b33ede4c3d4eac7e281c9eabfa47e35 Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/android/androidconfigurations.cpp12
-rw-r--r--src/plugins/android/androidconfigurations.h2
-rw-r--r--src/plugins/android/androidmanager.cpp1
-rw-r--r--src/plugins/android/androidsettingswidget.cpp12
4 files changed, 25 insertions, 2 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index bea0acad9b..c4aef8bdf0 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -248,6 +248,7 @@ void AndroidConfigurations::updateAvailableSdkPlatforms()
m_availableSdkPlatforms.clear();
QProcess proc;
+ proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
proc.start(androidToolPath().toString(), QStringList() << QLatin1String("list") << QLatin1String("target")); // list avaialbe AVDs
if (!proc.waitForFinished(-1)) {
proc.terminate();
@@ -283,6 +284,14 @@ FileName AndroidConfigurations::adbToolPath() const
return path.appendPath(QLatin1String("platform-tools/adb" QTC_HOST_EXE_SUFFIX));
}
+Utils::Environment AndroidConfigurations::androidToolEnvironment() const
+{
+ Utils::Environment env = Utils::Environment::systemEnvironment();
+ if (!m_config.openJDKLocation.isEmpty())
+ env.set(QLatin1String("JAVA_HOME"), m_config.openJDKLocation.toUserOutput());
+ return env;
+}
+
FileName AndroidConfigurations::androidToolPath() const
{
if (HostOsInfo::isWindowsHost()) {
@@ -524,6 +533,7 @@ QString AndroidConfigurations::createAVD(int minApiLevel, QString targetArch) co
QString AndroidConfigurations::createAVD(const QString &target, const QString &name, const QString &abi, int sdcardSize ) const
{
QProcess proc;
+ proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
proc.start(androidToolPath().toString(),
QStringList() << QLatin1String("create") << QLatin1String("avd")
<< QLatin1String("-t") << target
@@ -565,6 +575,7 @@ QString AndroidConfigurations::createAVD(const QString &target, const QString &n
bool AndroidConfigurations::removeAVD(const QString &name) const
{
QProcess proc;
+ proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
proc.start(androidToolPath().toString(),
QStringList() << QLatin1String("delete") << QLatin1String("avd")
<< QLatin1String("-n") << name);
@@ -579,6 +590,7 @@ QVector<AndroidDeviceInfo> AndroidConfigurations::androidVirtualDevices() const
{
QVector<AndroidDeviceInfo> devices;
QProcess proc;
+ proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
proc.start(androidToolPath().toString(),
QStringList() << QLatin1String("list") << QLatin1String("avd")); // list available AVDs
if (!proc.waitForFinished(-1)) {
diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h
index 3845a3cc32..0ffd279c14 100644
--- a/src/plugins/android/androidconfigurations.h
+++ b/src/plugins/android/androidconfigurations.h
@@ -38,6 +38,7 @@
#include <QMap>
#include <projectexplorer/abi.h>
#include <utils/fileutils.h>
+#include <utils/environment.h>
QT_BEGIN_NAMESPACE
class QSettings;
@@ -89,6 +90,7 @@ public:
QStringList sdkTargets(int minApiLevel = 0) const;
Utils::FileName adbToolPath() const;
Utils::FileName androidToolPath() const;
+ Utils::Environment androidToolEnvironment() const;
Utils::FileName antToolPath() const;
Utils::FileName emulatorToolPath() const;
Utils::FileName gccPath(ProjectExplorer::Abi::Architecture architecture, const QString &ndkToolChainVersion) const;
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index b72b27bec7..73a713372c 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -706,6 +706,7 @@ void AndroidManager::updateTarget(ProjectExplorer::Target *target, const QString
params << QLatin1String("-t") << targetSDK;
if (!name.isEmpty())
params << QLatin1String("-n") << name;
+ androidProc.setProcessEnvironment(AndroidConfigurations::instance().androidToolEnvironment().toProcessEnvironment());
androidProc.start(AndroidConfigurations::instance().androidToolPath().toString(), params);
if (!androidProc.waitForFinished(-1))
androidProc.terminate();
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index 7e72ee3b6a..fc0a01c22a 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -35,6 +35,10 @@
#include "androidconstants.h"
#include "androidtoolchain.h"
+#ifdef Q_OS_WIN
+#include <utils/winutils.h>
+#endif
+#include <utils/environment.h>
#include <utils/hostosinfo.h>
#include <projectexplorer/toolchainmanager.h>
#include <projectexplorer/kitmanager.h>
@@ -434,8 +438,12 @@ void AndroidSettingsWidget::manageAVD()
QProcess *avdProcess = new QProcess();
connect(this, SIGNAL(destroyed()), avdProcess, SLOT(deleteLater()));
connect(avdProcess, SIGNAL(finished(int)), avdProcess, SLOT(deleteLater()));
- avdProcess->start(AndroidConfigurations::instance().androidToolPath().toString(),
- QStringList() << QLatin1String("avd"));
+
+ avdProcess->setProcessEnvironment(AndroidConfigurations::instance().androidToolEnvironment().toProcessEnvironment());
+ QString executable = AndroidConfigurations::instance().androidToolPath().toString();
+ QStringList arguments = QStringList() << QLatin1String("avd");
+
+ avdProcess->start(executable, arguments);
}