Android: Set JAVA_HOME in environment and use that environment

Change-Id: Ia0f3abad74b7ac423fab621ca22e0f698747c477
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Ray Donnelly <mingw.android@gmail.com>
This commit is contained in:
Daniel Teske
2013-06-10 18:18:38 +02:00
parent 8127ebe244
commit cb6eaa3c24
4 changed files with 12 additions and 1 deletions

View File

@@ -611,9 +611,14 @@ void AndroidManager::updateTarget(ProjectExplorer::Target *target, const QString
{ {
QString androidDir = dirPath(target).toString(); QString androidDir = dirPath(target).toString();
Utils::Environment env = Utils::Environment::systemEnvironment();
QString javaHome = AndroidConfigurations::instance().config().openJDKLocation.toString();
if (!javaHome.isEmpty())
env.set(QLatin1String("JAVA_HOME"), javaHome);
// clean previous build // clean previous build
QProcess androidProc; QProcess androidProc;
androidProc.setWorkingDirectory(androidDir); androidProc.setWorkingDirectory(androidDir);
androidProc.setProcessEnvironment(env.toProcessEnvironment());
androidProc.start(AndroidConfigurations::instance().antToolPath().toString(), androidProc.start(AndroidConfigurations::instance().antToolPath().toString(),
QStringList() << QLatin1String("clean")); QStringList() << QLatin1String("clean"));
if (!androidProc.waitForFinished(-1)) if (!androidProc.waitForFinished(-1))

View File

@@ -169,6 +169,7 @@ bool AndroidPackageCreationStep::init()
m_certificatePasswdForRun = m_certificatePasswd; m_certificatePasswdForRun = m_certificatePasswd;
m_jarSigner = AndroidConfigurations::instance().jarsignerPath(); m_jarSigner = AndroidConfigurations::instance().jarsignerPath();
m_zipAligner = AndroidConfigurations::instance().zipalignPath(); m_zipAligner = AndroidConfigurations::instance().zipalignPath();
m_environment = bc->environment();
ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit());
if (tc->type() != QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE)) if (tc->type() != QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE))
@@ -702,6 +703,7 @@ bool AndroidPackageCreationStep::createPackage()
emit addOutput(tr("Creating package file ..."), MessageOutput); emit addOutput(tr("Creating package file ..."), MessageOutput);
QProcess *const buildProc = new QProcess; QProcess *const buildProc = new QProcess;
buildProc->setProcessEnvironment(m_environment.toProcessEnvironment());
connect(buildProc, SIGNAL(readyReadStandardOutput()), this, connect(buildProc, SIGNAL(readyReadStandardOutput()), this,
SLOT(handleBuildStdOutOutput())); SLOT(handleBuildStdOutOutput()));

View File

@@ -35,6 +35,7 @@
#include <projectexplorer/abi.h> #include <projectexplorer/abi.h>
#include <projectexplorer/buildstep.h> #include <projectexplorer/buildstep.h>
#include <utils/environment.h>
#include <QAbstractItemModel> #include <QAbstractItemModel>
@@ -140,10 +141,10 @@ private:
QStringList m_qtLibsWithDependencies; QStringList m_qtLibsWithDependencies;
QVector<AndroidManager::Library> m_availableQtLibs; QVector<AndroidManager::Library> m_availableQtLibs;
QStringList m_prebundledLibs; QStringList m_prebundledLibs;
QStringList m_bundledJars; QStringList m_bundledJars;
QStringList m_otherBundledFiles; QStringList m_otherBundledFiles;
bool m_bundleQt; bool m_bundleQt;
Utils::Environment m_environment;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -115,6 +115,9 @@ void AndroidToolChain::addToEnvironment(Environment &env) const
env.set(QLatin1String("ANDROID_NDK_TOOLCHAIN_PREFIX"), AndroidConfigurations::toolchainPrefix(targetAbi().architecture())); env.set(QLatin1String("ANDROID_NDK_TOOLCHAIN_PREFIX"), AndroidConfigurations::toolchainPrefix(targetAbi().architecture()));
env.set(QLatin1String("ANDROID_NDK_TOOLS_PREFIX"), AndroidConfigurations::toolsPrefix(targetAbi().architecture())); env.set(QLatin1String("ANDROID_NDK_TOOLS_PREFIX"), AndroidConfigurations::toolsPrefix(targetAbi().architecture()));
env.set(QLatin1String("ANDROID_NDK_TOOLCHAIN_VERSION"), m_ndkToolChainVersion); env.set(QLatin1String("ANDROID_NDK_TOOLCHAIN_VERSION"), m_ndkToolChainVersion);
QString javaHome = AndroidConfigurations::instance().openJDKPath().toString();
if (!javaHome.isEmpty() && QFileInfo(javaHome).exists())
env.set(QLatin1String("JAVA_HOME"), javaHome);
} }
bool AndroidToolChain::operator ==(const ToolChain &tc) const bool AndroidToolChain::operator ==(const ToolChain &tc) const