forked from qt-creator/qt-creator
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:
@@ -64,6 +64,7 @@ const char JAVA_MIMETYPE[] = "text/x-java";
|
|||||||
const char ANDROID_ARCHITECTURE[] = "Android.Architecture";
|
const char ANDROID_ARCHITECTURE[] = "Android.Architecture";
|
||||||
const char ANDROID_PACKAGE_SOURCE_DIR[] = "AndroidPackageSourceDir";
|
const char ANDROID_PACKAGE_SOURCE_DIR[] = "AndroidPackageSourceDir";
|
||||||
const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs";
|
const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs";
|
||||||
|
const char ANDROID_ABIS[] = "ANDROID_ABIS";
|
||||||
|
|
||||||
const char ANDROID_PACKAGENAME[] = "Android.PackageName";
|
const char ANDROID_PACKAGENAME[] = "Android.PackageName";
|
||||||
const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[]
|
const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[]
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
#include <coreplugin/messagemanager.h>
|
#include <coreplugin/messagemanager.h>
|
||||||
|
|
||||||
#include <projectexplorer/buildconfiguration.h>
|
#include <projectexplorer/buildconfiguration.h>
|
||||||
|
#include <projectexplorer/buildsystem.h>
|
||||||
#include <projectexplorer/buildsteplist.h>
|
#include <projectexplorer/buildsteplist.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
#include <projectexplorer/project.h>
|
#include <projectexplorer/project.h>
|
||||||
@@ -207,6 +208,18 @@ bool AndroidDeployQtStep::init()
|
|||||||
if (!info.isValid()) // aborted
|
if (!info.isValid()) // aborted
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
const QString buildKey = target()->activeBuildKey();
|
||||||
|
auto selectedAbis = buildSystem()->extraData(buildKey, Constants::ANDROID_ABIS).toStringList();
|
||||||
|
|
||||||
|
if (!selectedAbis.contains(info.cpuAbi.first())) {
|
||||||
|
Core::MessageManager::write(
|
||||||
|
tr("Android: The selected device main ABI (%1) is not selected! The app execution or "
|
||||||
|
"debugging might not work properly. Add it from Projects > Build > Build Steps > "
|
||||||
|
"qmake > ABIs.")
|
||||||
|
.arg(info.cpuAbi.first()),
|
||||||
|
Core::MessageManager::WithFocus);
|
||||||
|
}
|
||||||
|
|
||||||
m_avdName = info.avdname;
|
m_avdName = info.avdname;
|
||||||
m_serialNumber = info.serialNumber;
|
m_serialNumber = info.serialNumber;
|
||||||
qCDebug(deployStepLog) << "Selected device info:" << info;
|
qCDebug(deployStepLog) << "Selected device info:" << info;
|
||||||
|
|||||||
@@ -360,6 +360,8 @@ QStringList QmakeProFileNode::targetApplications() const
|
|||||||
|
|
||||||
QVariant QmakeProFileNode::data(Utils::Id role) const
|
QVariant QmakeProFileNode::data(Utils::Id role) const
|
||||||
{
|
{
|
||||||
|
if (role == Android::Constants::ANDROID_ABIS)
|
||||||
|
return variableValue(Variable::AndroidAbis);
|
||||||
if (role == Android::Constants::AndroidPackageSourceDir)
|
if (role == Android::Constants::AndroidPackageSourceDir)
|
||||||
return singleVariableValue(Variable::AndroidPackageSourceDir);
|
return singleVariableValue(Variable::AndroidPackageSourceDir);
|
||||||
if (role == Android::Constants::AndroidDeploySettingsFile)
|
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);
|
return pro->setProVariable("ANDROID_EXTRA_LIBS", value.toStringList(), scope, flags);
|
||||||
if (role == Android::Constants::AndroidPackageSourceDir)
|
if (role == Android::Constants::AndroidPackageSourceDir)
|
||||||
return pro->setProVariable("ANDROID_PACKAGE_SOURCE_DIR", {value.toString()}, scope, flags);
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1589,6 +1589,7 @@ QmakeEvalResult *QmakeProFile::evaluate(const QmakeEvalInput &input)
|
|||||||
result->newVarValues[Variable::AndroidArch] = exactReader->values(QLatin1String("ANDROID_TARGET_ARCH"));
|
result->newVarValues[Variable::AndroidArch] = exactReader->values(QLatin1String("ANDROID_TARGET_ARCH"));
|
||||||
result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String("ANDROID_DEPLOYMENT_SETTINGS_FILE"));
|
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::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::AndroidExtraLibs] = exactReader->values(QLatin1String("ANDROID_EXTRA_LIBS"));
|
||||||
result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR"));
|
result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR"));
|
||||||
result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST"));
|
result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST"));
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ enum class Variable {
|
|||||||
ShLibExtension,
|
ShLibExtension,
|
||||||
AndroidArch,
|
AndroidArch,
|
||||||
AndroidDeploySettingsFile,
|
AndroidDeploySettingsFile,
|
||||||
|
AndroidAbis,
|
||||||
AndroidPackageSourceDir,
|
AndroidPackageSourceDir,
|
||||||
AndroidExtraLibs,
|
AndroidExtraLibs,
|
||||||
AppmanPackageDir,
|
AppmanPackageDir,
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
#include "qmakeprojectmanagerconstants.h"
|
#include "qmakeprojectmanagerconstants.h"
|
||||||
#include "qmakesettings.h"
|
#include "qmakesettings.h"
|
||||||
|
|
||||||
|
#include <android/androidconstants.h>
|
||||||
|
|
||||||
#include <projectexplorer/buildmanager.h>
|
#include <projectexplorer/buildmanager.h>
|
||||||
#include <projectexplorer/buildsteplist.h>
|
#include <projectexplorer/buildsteplist.h>
|
||||||
#include <projectexplorer/gnumakeparser.h>
|
#include <projectexplorer/gnumakeparser.h>
|
||||||
@@ -664,8 +666,12 @@ void QMakeStepConfigWidget::abisChanged()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
args << prefix + '"' + abis.join(' ') + '"';
|
if (!abis.isEmpty())
|
||||||
|
args << prefix + '"' + abis.join(' ') + '"';
|
||||||
m_step->setExtraArguments(args);
|
m_step->setExtraArguments(args);
|
||||||
|
|
||||||
|
const QString buildKey = m_step->target()->activeBuildKey();
|
||||||
|
m_step->buildSystem()->setExtraData(buildKey, Android::Constants::ANDROID_ABIS, m_step->selectedAbis());
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSummaryLabel();
|
updateSummaryLabel();
|
||||||
|
|||||||
Reference in New Issue
Block a user