aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidtoolmanager.cpp
diff options
context:
space:
mode:
authorVikas Pachdha <[email protected]>2017-10-10 09:58:19 +0200
committerVikas Pachdha <[email protected]>2017-10-12 07:59:52 +0000
commit5754b7d09fdfe2fdd0f7c7368e17fc1267f23392 (patch)
treeaf1699873577030f9c0191c4ca1bb98c0c9ba872 /src/plugins/android/androidtoolmanager.cpp
parentcd575e3a7644f817f2a98b65350b379774f1e23f (diff)
Android: Fix Sdk manager system environment
Android native tools fail if JAVA_HOME environment variable is not defined Task-number: QTCREATORBUG-19072 Change-Id: I3db910b34d9bdd9ebc9ba052b5300ecf5ef3ce15 Reviewed-by: BogDan Vatra <[email protected]>
Diffstat (limited to 'src/plugins/android/androidtoolmanager.cpp')
-rw-r--r--src/plugins/android/androidtoolmanager.cpp34
1 files changed, 11 insertions, 23 deletions
diff --git a/src/plugins/android/androidtoolmanager.cpp b/src/plugins/android/androidtoolmanager.cpp
index fc214ab1139..c50124ce2c4 100644
--- a/src/plugins/android/androidtoolmanager.cpp
+++ b/src/plugins/android/androidtoolmanager.cpp
@@ -58,11 +58,11 @@ public:
output.
*/
static bool androidToolCommand(Utils::FileName toolPath, const QStringList &args,
- const Environment &environment, QString *output)
+ const QProcessEnvironment &environment, QString *output)
{
QString androidToolPath = toolPath.toString();
SynchronousProcess proc;
- proc.setProcessEnvironment(environment.toProcessEnvironment());
+ proc.setProcessEnvironment(environment);
SynchronousProcessResponse response = proc.runBlocking(androidToolPath, args);
if (response.result == SynchronousProcessResponse::Finished) {
if (output)
@@ -103,7 +103,7 @@ SdkPlatformList AndroidToolManager::availableSdkPlatforms(bool *ok) const
SdkPlatformList list;
QString targetListing;
if (androidToolCommand(m_config.androidToolPath(), QStringList({"list", "target"}),
- androidToolEnvironment(), &targetListing)) {
+ AndroidConfigurations::toolsEnvironment(m_config), &targetListing)) {
m_parser->parseTargetListing(targetListing, m_config.sdkLocation(), list);
success = true;
} else {
@@ -124,14 +124,15 @@ void AndroidToolManager::launchAvdManager() const
QFuture<CreateAvdInfo> AndroidToolManager::createAvd(CreateAvdInfo info) const
{
return Utils::runAsync(&AndroidToolManager::createAvdImpl, info,
- m_config.androidToolPath(), androidToolEnvironment());
+ m_config.androidToolPath(),
+ AndroidConfigurations::toolsEnvironment(m_config));
}
bool AndroidToolManager::removeAvd(const QString &name) const
{
SynchronousProcess proc;
proc.setTimeoutS(5);
- proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment());
+ proc.setProcessEnvironment(AndroidConfigurations::toolsEnvironment(m_config));
SynchronousProcessResponse response
= proc.runBlocking(m_config.androidToolPath().toString(),
QStringList({"delete", "avd", "-n", name}));
@@ -142,27 +143,14 @@ QFuture<AndroidDeviceInfoList> AndroidToolManager::androidVirtualDevicesFuture()
{
return Utils::runAsync(&AndroidToolManager::androidVirtualDevices,
m_config.androidToolPath(), m_config.sdkLocation(),
- androidToolEnvironment());
-}
-
-Environment AndroidToolManager::androidToolEnvironment() const
-{
- Environment env = Environment::systemEnvironment();
- Utils::FileName jdkLocation = m_config.openJDKLocation();
- if (!jdkLocation.isEmpty()) {
- env.set(QLatin1String("JAVA_HOME"), jdkLocation.toUserOutput());
- Utils::FileName binPath = jdkLocation;
- binPath.appendPath(QLatin1String("bin"));
- env.prependOrSetPath(binPath.toUserOutput());
- }
- return env;
+ AndroidConfigurations::toolsEnvironment(m_config));
}
CreateAvdInfo AndroidToolManager::createAvdImpl(CreateAvdInfo info, FileName androidToolPath,
- Environment env)
+ QProcessEnvironment env)
{
QProcess proc;
- proc.setProcessEnvironment(env.toProcessEnvironment());
+ proc.setProcessEnvironment(env);
QStringList arguments;
arguments << QLatin1String("create") << QLatin1String("avd")
<< QLatin1String("-t") << AndroidConfig::apiLevelNameFor(info.sdkPlatform)
@@ -212,11 +200,11 @@ CreateAvdInfo AndroidToolManager::createAvdImpl(CreateAvdInfo info, FileName and
AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::FileName &androidTool,
const FileName &sdkLocationPath,
- const Environment &environment)
+ const QProcessEnvironment &env)
{
AndroidDeviceInfoList devices;
QString output;
- if (!androidToolCommand(androidTool, QStringList({"list", "avd"}), environment, &output))
+ if (!androidToolCommand(androidTool, QStringList({"list", "avd"}), env, &output))
return devices;
QStringList avds = output.split('\n');