Android: Tolerate empty build/deploy configurations

If there is no build or deploy configuration, just skip the building and
deploying.

Change-Id: I8b6f6d14100f366df5683eb77490d7c0dc588f94
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
Ulf Hermann
2018-01-30 18:19:46 +01:00
parent 1fcd494cc7
commit b088972a9c
2 changed files with 21 additions and 15 deletions

View File

@@ -121,10 +121,8 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
AndroidBuildApkStep *androidBuildApkStep
= AndroidGlobal::buildStep<AndroidBuildApkStep>(target()->activeBuildConfiguration());
if (!androidBuildApkStep) {
if (!androidBuildApkStep)
emit addOutput(tr("Cannot find the android build step."), OutputFormat::Stderr);
return false;
}
int deviceAPILevel = AndroidManager::minimumSDK(target());
AndroidDeviceInfo info = earlierDeviceInfo(earlierSteps, Id);
@@ -167,9 +165,11 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
if (m_uninstallPreviousPackageRun)
m_manifestName = AndroidManager::manifestPath(target());
m_useAndroiddeployqt = version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0);
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(target());
m_useAndroiddeployqt = qtSupport && version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0);
if (m_useAndroiddeployqt) {
Utils::FileName tmp = AndroidManager::androidQtSupport(target())->androiddeployqtPath(target());
Utils::FileName tmp = qtSupport->androiddeployqtPath(target());
if (tmp.isEmpty()) {
emit addOutput(tr("Cannot find the androiddeployqt tool."), OutputFormat::Stderr);
return false;
@@ -189,14 +189,14 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
return false;
}
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, tmp.toString());
if (androidBuildApkStep->useMinistro()) {
if (androidBuildApkStep && androidBuildApkStep->useMinistro()) {
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--deployment"));
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("ministro"));
}
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--gradle"));
if (androidBuildApkStep->signPackage()) {
if (androidBuildApkStep && androidBuildApkStep->signPackage()) {
// The androiddeployqt tool is not really written to do stand-alone installations.
// This hack forces it to use the correct filename for the apk file when installing
// as a temporary fix until androiddeployqt gets the support. Since the --sign is
@@ -208,12 +208,12 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
} else {
m_uninstallPreviousPackageRun = true;
m_command = AndroidConfigurations::currentConfig().adbToolPath().toString();
m_apkPath = AndroidManager::androidQtSupport(target())->apkPath(target()).toString();
m_workingDirectory = bc->buildDirectory().toString();
m_apkPath = qtSupport ? qtSupport->apkPath(target()).toString() : QString();
m_workingDirectory = bc ? bc->buildDirectory().toString() : QString();
}
m_environment = bc->environment();
m_environment = bc ? bc->environment() : Utils::Environment();
m_buildDirectory = bc->buildDirectory().toString();
m_buildDirectory = bc ? bc->buildDirectory().toString() : QString();
m_adbPath = AndroidConfigurations::currentConfig().adbToolPath().toString();
@@ -379,6 +379,11 @@ void AndroidDeployQtStep::run(QFutureInterface<bool> &fi)
emit setSerialNumber(serialNumber);
}
if (m_apkPath.isEmpty()) { // nothing to deploy
reportRunResult(fi, true);
return;
}
DeployErrorCode returnValue = runDeploy(fi);
if (returnValue > DeployErrorCode::NoError && returnValue < DeployErrorCode::Failure) {
emit askForUninstall(returnValue);