forked from qt-creator/qt-creator
Android: Get the preferred Abi from apk & device
Change-Id: I47325aaec0575dde0e9c9669e61248dac753c670 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
committed by
BogDan Vatra
parent
efa857e693
commit
e21fe24c40
@@ -423,9 +423,8 @@ void AndroidManager::setDeviceSerialNumber(ProjectExplorer::Target *target, cons
|
||||
target->setNamedSettings(AndroidDeviceSn, deviceSerialNumber);
|
||||
}
|
||||
|
||||
QString AndroidManager::devicePreferredAbi(Target *target)
|
||||
static QString preferredAbi(const QStringList &appAbis, Target *target)
|
||||
{
|
||||
auto appAbis = applicationAbis(target);
|
||||
const auto deviceAbis = target->namedSettings(AndroidDeviceAbis).toStringList();
|
||||
for (const auto &abi : deviceAbis) {
|
||||
if (appAbis.contains(abi))
|
||||
@@ -434,6 +433,21 @@ QString AndroidManager::devicePreferredAbi(Target *target)
|
||||
return {};
|
||||
}
|
||||
|
||||
QString AndroidManager::devicePreferredAbi(Target *target)
|
||||
{
|
||||
return preferredAbi(applicationAbis(target), target);
|
||||
}
|
||||
|
||||
QString AndroidManager::apkDevicePreferredAbi(Target *target)
|
||||
{
|
||||
auto libsPath = dirPath(target).pathAppended("libs");
|
||||
QStringList apkAbis;
|
||||
for (const auto &abi : QDir{libsPath.toString()}.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
|
||||
if (QDir{libsPath.pathAppended(abi).toString()}.entryList(QStringList("*.so"), QDir::Files | QDir::NoDotAndDotDot).length())
|
||||
apkAbis << abi;
|
||||
return preferredAbi(apkAbis, target);
|
||||
}
|
||||
|
||||
void AndroidManager::setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis)
|
||||
{
|
||||
target->setNamedSettings(AndroidDeviceAbis, deviceAbis);
|
||||
|
@@ -85,6 +85,7 @@ public:
|
||||
static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber);
|
||||
|
||||
static QString devicePreferredAbi(ProjectExplorer::Target *target);
|
||||
static QString apkDevicePreferredAbi(ProjectExplorer::Target *target);
|
||||
static void setDeviceAbis(ProjectExplorer::Target *target, const QStringList &deviceAbis);
|
||||
|
||||
static int deviceApiLevel(ProjectExplorer::Target *target);
|
||||
|
@@ -225,7 +225,9 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
|
||||
<< "Extra Start Args:" << m_amStartExtraArgs
|
||||
<< "Before Start ADB cmds:" << m_beforeStartAdbCommands
|
||||
<< "After finish ADB cmds:" << m_afterFinishAdbCommands;
|
||||
m_gdbserverPath = AndroidConfigurations::instance()->currentConfig().gdbServer(AndroidManager::devicePreferredAbi(target)).toString();
|
||||
QString preferredAbi = AndroidManager::apkDevicePreferredAbi(target);
|
||||
if (!preferredAbi.isEmpty())
|
||||
m_gdbserverPath = AndroidConfigurations::instance()->currentConfig().gdbServer(preferredAbi).toString();
|
||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target->kit());
|
||||
m_useAppParamsForQmlDebugger = version->qtVersion() >= QtSupport::QtVersionNumber(5, 12);
|
||||
}
|
||||
|
Reference in New Issue
Block a user