Android: Add system image information for each platform

Groundwork for the new sdk and avd management tool's integration

Task-number: QTCREATORBUG-17814
Change-Id: I3e46f6d3aa56c0f16dd66d0b1d731043e180e012
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Vikas Pachdha
2017-04-04 07:20:01 +02:00
parent 198c83ea70
commit 2b5f5abb2b
3 changed files with 41 additions and 8 deletions

View File

@@ -293,7 +293,17 @@ void AndroidToolOutputParser::parseTargetListing(const QString &output,
if (!platformList)
return;
auto addSystemImage = [](const QStringList& abiList, SdkPlatform &platform) {
foreach (auto imageAbi, abiList) {
SystemImage image;
image.abiName = imageAbi;
image.apiLevel = platform.apiLevel;
platform.systemImages.append(image);
}
};
SdkPlatform platform;
QStringList abiList;
foreach (const QString &l, output.split('\n')) {
const QString line = l.trimmed();
if (line.startsWith(QLatin1String("id:")) && line.contains(QLatin1String("android-"))) {
@@ -309,20 +319,26 @@ void AndroidToolOutputParser::parseTargetListing(const QString &output,
} else if (line.startsWith(QLatin1String("Name:"))) {
platform.name = line.mid(6);
} else if (line.startsWith(QLatin1String("Tag/ABIs :"))) {
platform.abis = cleanAndroidABIs(line.mid(10).trimmed().split(QLatin1String(", ")));
abiList = cleanAndroidABIs(line.mid(10).trimmed().split(QLatin1String(", ")));
} else if (line.startsWith(QLatin1String("ABIs"))) {
platform.abis = cleanAndroidABIs(line.mid(6).trimmed().split(QLatin1String(", ")));
abiList = cleanAndroidABIs(line.mid(6).trimmed().split(QLatin1String(", ")));
} else if (line.startsWith(QLatin1String("---")) || line.startsWith(QLatin1String("==="))) {
if (platform.apiLevel == -1)
continue;
addSystemImage(abiList, platform);
*platformList << platform;
platform = SdkPlatform();
abiList.clear();
}
}
// The last parsed Platform.
if (platform.apiLevel != -1)
if (platform.apiLevel != -1) {
addSystemImage(abiList, platform);
*platformList << platform;
}
}
} // namespace Internal