summaryrefslogtreecommitdiff
path: root/src/plugins/android/androidsdkmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/androidsdkmanager.cpp')
-rw-r--r--src/plugins/android/androidsdkmanager.cpp52
1 files changed, 28 insertions, 24 deletions
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp
index ae0dd0dd5c..bb32daab18 100644
--- a/src/plugins/android/androidsdkmanager.cpp
+++ b/src/plugins/android/androidsdkmanager.cpp
@@ -61,9 +61,10 @@ const char commonArgsKey[] = "Common Arguments:";
const int sdkManagerCmdTimeoutS = 60;
const int sdkManagerOperationTimeoutS = 600;
-const QRegularExpression assertionReg("(\\(\\s*y\\s*[\\/\\\\]\\s*n\\s*\\)\\s*)(?<mark>[\\:\\?])",
- QRegularExpression::CaseInsensitiveOption |
- QRegularExpression::MultilineOption);
+Q_GLOBAL_STATIC_WITH_ARGS(QRegularExpression, assertionReg,
+ ("(\\(\\s*y\\s*[\\/\\\\]\\s*n\\s*\\)\\s*)(?<mark>[\\:\\?])",
+ QRegularExpression::CaseInsensitiveOption
+ | QRegularExpression::MultilineOption))
using namespace Utils;
using SdkCmdFutureInterface = QFutureInterface<AndroidSdkManager::OperationOutput>;
@@ -118,7 +119,7 @@ int parseProgress(const QString &out, bool &foundAssertion)
progress = -1;
}
if (!foundAssertion)
- foundAssertion = assertionReg.match(line).hasMatch();
+ foundAssertion = assertionReg->match(line).hasMatch();
}
return progress;
}
@@ -320,20 +321,21 @@ private:
QHash<AndroidSdkPackage *, int> m_systemImages;
};
-const std::map<SdkManagerOutputParser::MarkerTag, const char *> markerTags {
- {SdkManagerOutputParser::MarkerTag::InstalledPackagesMarker, "Installed packages:"},
- {SdkManagerOutputParser::MarkerTag::AvailablePackagesMarkers, "Available Packages:"},
- {SdkManagerOutputParser::MarkerTag::AvailableUpdatesMarker, "Available Updates:"},
- {SdkManagerOutputParser::MarkerTag::PlatformMarker, "platforms"},
- {SdkManagerOutputParser::MarkerTag::SystemImageMarker, "system-images"},
- {SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"},
- {SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"},
- {SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, "cmdline-tools"},
- {SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
- {SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
- {SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"},
- {SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
-};
+using MarkerTagsType = std::map<SdkManagerOutputParser::MarkerTag, const char *>;
+Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags, ({
+ {SdkManagerOutputParser::MarkerTag::InstalledPackagesMarker, "Installed packages:"},
+ {SdkManagerOutputParser::MarkerTag::AvailablePackagesMarkers, "Available Packages:"},
+ {SdkManagerOutputParser::MarkerTag::AvailableUpdatesMarker, "Available Updates:"},
+ {SdkManagerOutputParser::MarkerTag::PlatformMarker, "platforms"},
+ {SdkManagerOutputParser::MarkerTag::SystemImageMarker, "system-images"},
+ {SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"},
+ {SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"},
+ {SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, "cmdline-tools"},
+ {SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
+ {SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
+ {SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"},
+ {SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
+}));
AndroidSdkManager::AndroidSdkManager(const AndroidConfig &config):
m_d(new AndroidSdkManagerPrivate(*this, config))
@@ -496,7 +498,8 @@ void SdkManagerOutputParser::parsePackageListing(const QString &output)
};
QRegularExpression delimiters("[\\n\\r]");
- for (const QString &outputLine : output.split(delimiters)) {
+ const auto lines = output.split(delimiters);
+ for (const QString &outputLine : lines) {
// NOTE: we don't want to parse Dependencies part as it does not add value
if (outputLine.startsWith(" "))
@@ -646,7 +649,7 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt
break;
default:
- qCDebug(sdkManagerLog) << "Unhandled package: " << markerTags.at(packageMarker);
+ qCDebug(sdkManagerLog) << "Unhandled package: " << markerTags->at(packageMarker);
break;
}
@@ -660,7 +663,7 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt
package->setState(AndroidSdkPackage::Available);
break;
default:
- qCDebug(sdkManagerLog) << "Invalid section marker: " << markerTags.at(m_currentSection);
+ qCDebug(sdkManagerLog) << "Invalid section marker: " << markerTags->at(m_currentSection);
break;
}
}
@@ -864,7 +867,7 @@ SdkManagerOutputParser::MarkerTag SdkManagerOutputParser::parseMarkers(const QSt
if (line.isEmpty())
return EmptyMarker;
- for (auto pair: markerTags) {
+ for (auto pair : *markerTags) {
if (line.startsWith(QLatin1String(pair.second)))
return pair.first;
}
@@ -1115,7 +1118,7 @@ bool AndroidSdkManagerPrivate::onLicenseStdOut(const QString &output, bool notif
SdkCmdFutureInterface &fi)
{
m_licenseTextCache.append(output);
- QRegularExpressionMatch assertionMatch = assertionReg.match(m_licenseTextCache);
+ QRegularExpressionMatch assertionMatch = assertionReg->match(m_licenseTextCache);
if (assertionMatch.hasMatch()) {
if (notify) {
result.stdOutput = m_licenseTextCache;
@@ -1143,7 +1146,8 @@ void AndroidSdkManagerPrivate::parseCommonArguments(QFutureInterface<QString> &f
QString output;
sdkManagerCommand(m_config, QStringList("--help"), &output);
bool foundTag = false;
- for (const QString& line : output.split('\n')) {
+ const auto lines = output.split('\n');
+ for (const QString& line : lines) {
if (fi.isCanceled())
break;
if (foundTag)