Android: Use a more direct access to the tools' path

Change-Id: I49c574144fd4d6b2edd829538c424465c1fe7f05
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2023-07-27 14:44:44 +02:00
parent 1e35f09251
commit 68c3103f76
5 changed files with 11 additions and 11 deletions

View File

@@ -38,8 +38,7 @@ bool AndroidAvdManager::avdManagerCommand(const AndroidConfig &config, const QSt
{
CommandLine cmd(config.avdManagerToolPath(), args);
Process proc;
Environment env = AndroidConfigurations::toolsEnvironment(config);
proc.setEnvironment(env);
proc.setEnvironment(config.toolsEnvironment());
qCDebug(avdManagerLog).noquote() << "Running AVD Manager command:" << cmd.toUserOutput();
proc.setCommand(cmd);
proc.runBlocking();
@@ -87,7 +86,7 @@ static CreateAvdInfo createAvdCommand(const AndroidConfig &config, const CreateA
qCDebug(avdManagerLog).noquote() << "Running AVD Manager command:" << avdManager.toUserOutput();
Process proc;
proc.setProcessMode(ProcessMode::Writer);
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(config));
proc.setEnvironment(config.toolsEnvironment());
proc.setCommand(avdManager);
proc.start();
if (!proc.waitForStarted()) {
@@ -148,7 +147,7 @@ bool AndroidAvdManager::removeAvd(const QString &name) const
qCDebug(avdManagerLog).noquote() << "Running command (removeAvd):" << command.toUserOutput();
Process proc;
proc.setTimeoutS(5);
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(m_config));
proc.setEnvironment(m_config.toolsEnvironment());
proc.setCommand(command);
proc.runBlocking();
return proc.result() == ProcessResult::FinishedWithSuccess;

View File

@@ -1424,10 +1424,10 @@ void AndroidConfigurations::updateAutomaticKitList()
KitManager::deregisterKit(k);
}
Environment AndroidConfigurations::toolsEnvironment(const AndroidConfig &config)
Environment AndroidConfig::toolsEnvironment() const
{
Environment env = Environment::systemEnvironment();
FilePath jdkLocation = config.openJDKLocation();
FilePath jdkLocation = openJDKLocation();
if (!jdkLocation.isEmpty()) {
env.set(Constants::JAVA_HOME_ENV_VAR, jdkLocation.toUserOutput());
env.prependOrSetPath(jdkLocation.pathAppended("bin"));

View File

@@ -150,6 +150,8 @@ public:
static QStringList getAbis(const QString &device);
static int getSDKVersion(const QString &device);
Utils::Environment toolsEnvironment() const;
private:
static QString getDeviceProperty(const QString &device, const QString &property);
@@ -197,7 +199,6 @@ public:
static void removeOldToolChains();
static void updateAutomaticKitList();
static bool force32bitEmulator();
static Utils::Environment toolsEnvironment(const AndroidConfig &config);
signals:
void aboutToUpdate();

View File

@@ -641,7 +641,7 @@ void AndroidDeviceManager::setupDevicesWatcher()
const CommandLine command = CommandLine(m_androidConfig.adbToolPath(), {"track-devices"});
m_adbDeviceWatcherProcess->setCommand(command);
m_adbDeviceWatcherProcess->setWorkingDirectory(command.executable().parentDir());
m_adbDeviceWatcherProcess->setEnvironment(AndroidConfigurations::toolsEnvironment(m_androidConfig));
m_adbDeviceWatcherProcess->setEnvironment(m_androidConfig.toolsEnvironment());
m_adbDeviceWatcherProcess->start();
// Setup AVD filesystem watcher to listen for changes when an avd is created/deleted,

View File

@@ -94,7 +94,7 @@ static bool sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
<< CommandLine(config.sdkManagerToolPath(), newArgs)
.toUserOutput();
Process proc;
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(config));
proc.setEnvironment(config.toolsEnvironment());
proc.setTimeoutS(timeout);
proc.setTimeOutMessageBoxEnabled(true);
proc.setCommand({config.sdkManagerToolPath(), newArgs});
@@ -122,7 +122,7 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
.toUserOutput();
int offset = promise.future().progressValue();
Process proc;
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(config));
proc.setEnvironment(config.toolsEnvironment());
bool assertionFound = false;
proc.setTimeoutS(timeout);
proc.setStdOutCallback([offset, progressQuota, &proc, &assertionFound, &promise](const QString &out) {
@@ -523,7 +523,7 @@ void AndroidSdkManagerPrivate::getPendingLicense(SdkCmdPromise &fi)
Process licenseCommand;
licenseCommand.setProcessMode(ProcessMode::Writer);
licenseCommand.setEnvironment(AndroidConfigurations::toolsEnvironment(m_config));
licenseCommand.setEnvironment(m_config.toolsEnvironment());
bool reviewingLicenses = false;
licenseCommand.setCommand(CommandLine(m_config.sdkManagerToolPath(), {"--licenses", sdkRootArg(m_config)}));
licenseCommand.setUseCtrlCStub(true);