From d3cb2cae5048b494b69a4fe8a6a97070b3fd354d Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 10 Apr 2017 15:02:57 +0300 Subject: [PATCH] Use QVersionNumber to compare versions Comparing strings will give us strange results e.g. 23.0.20 > 25.0.0 Change-Id: Id709ebfe45454064a18706e2df5d01ed5a3e8551 Reviewed-by: Vikas Pachdha Reviewed-by: Alessandro Portale --- src/plugins/android/androidmanager.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 0459355b041..69e43e178c8 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -60,6 +60,7 @@ #include #include #include +#include namespace { const QLatin1String AndroidManifestName("AndroidManifest.xml"); @@ -565,16 +566,16 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target) gradleProperties["buildDir"] = ".build"; gradleProperties["androidCompileSdkVersion"] = buildTargetSDK(target).split(QLatin1Char('-')).last().toLocal8Bit(); if (gradleProperties["androidBuildToolsVersion"].isEmpty()) { - QString maxVersion; + QVersionNumber maxVersion; QDir buildToolsDir(AndroidConfigurations::currentConfig().sdkLocation().appendPath(QLatin1String("build-tools")).toString()); foreach (const QFileInfo &file, buildToolsDir.entryList(QDir::Dirs|QDir::NoDotAndDotDot)) { - QString ver(file.fileName()); + QVersionNumber ver = QVersionNumber::fromString(file.fileName()); if (maxVersion < ver) maxVersion = ver; } - if (maxVersion.isEmpty()) + if (maxVersion.isNull()) return false; - gradleProperties["androidBuildToolsVersion"] = maxVersion.toLocal8Bit(); + gradleProperties["androidBuildToolsVersion"] = maxVersion.toString().toLocal8Bit(); } return mergeGradleProperties(gradlePropertiesPath, gradleProperties); }