Android: Warn if the selected device main ABI is not selected

Task-number: QTCREATORBUG-23291
Change-Id: I2ae13edaee30c6548a37e077c18f508a42b42d25
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Assam Boudjelthia
2020-07-14 15:23:26 +03:00
parent e0915b7eff
commit 27514fa94d
6 changed files with 27 additions and 1 deletions

View File

@@ -360,6 +360,8 @@ QStringList QmakeProFileNode::targetApplications() const
QVariant QmakeProFileNode::data(Utils::Id role) const
{
if (role == Android::Constants::ANDROID_ABIS)
return variableValue(Variable::AndroidAbis);
if (role == Android::Constants::AndroidPackageSourceDir)
return singleVariableValue(Variable::AndroidPackageSourceDir);
if (role == Android::Constants::AndroidDeploySettingsFile)
@@ -432,6 +434,8 @@ bool QmakeProFileNode::setData(Utils::Id role, const QVariant &value) const
return pro->setProVariable("ANDROID_EXTRA_LIBS", value.toStringList(), scope, flags);
if (role == Android::Constants::AndroidPackageSourceDir)
return pro->setProVariable("ANDROID_PACKAGE_SOURCE_DIR", {value.toString()}, scope, flags);
if (role == Android::Constants::ANDROID_ABIS)
return pro->setProVariable("ANDROID_ABIS", {value.toString()}, scope, flags);
return false;
}

View File

@@ -1589,6 +1589,7 @@ QmakeEvalResult *QmakeProFile::evaluate(const QmakeEvalInput &input)
result->newVarValues[Variable::AndroidArch] = exactReader->values(QLatin1String("ANDROID_TARGET_ARCH"));
result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String("ANDROID_DEPLOYMENT_SETTINGS_FILE"));
result->newVarValues[Variable::AndroidPackageSourceDir] = exactReader->values(QLatin1String("ANDROID_PACKAGE_SOURCE_DIR"));
result->newVarValues[Variable::AndroidAbis] = exactReader->values(QLatin1String("ANDROID_ABIS"));
result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String("ANDROID_EXTRA_LIBS"));
result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR"));
result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST"));

View File

@@ -98,6 +98,7 @@ enum class Variable {
ShLibExtension,
AndroidArch,
AndroidDeploySettingsFile,
AndroidAbis,
AndroidPackageSourceDir,
AndroidExtraLibs,
AppmanPackageDir,

View File

@@ -34,6 +34,8 @@
#include "qmakeprojectmanagerconstants.h"
#include "qmakesettings.h"
#include <android/androidconstants.h>
#include <projectexplorer/buildmanager.h>
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/gnumakeparser.h>
@@ -664,8 +666,12 @@ void QMakeStepConfigWidget::abisChanged()
break;
}
}
args << prefix + '"' + abis.join(' ') + '"';
if (!abis.isEmpty())
args << prefix + '"' + abis.join(' ') + '"';
m_step->setExtraArguments(args);
const QString buildKey = m_step->target()->activeBuildKey();
m_step->buildSystem()->setExtraData(buildKey, Android::Constants::ANDROID_ABIS, m_step->selectedAbis());
}
updateSummaryLabel();