diff options
author | Sheree Morphett <[email protected]> | 2025-06-17 14:44:06 +0300 |
---|---|---|
committer | sheree morphett <[email protected]> | 2025-07-01 13:31:16 +0000 |
commit | bea33f47bfdf002eb5095c0de06107d34db32e8a (patch) | |
tree | 8d896b60f02067bb3c8b679e63be7308f44252d3 | |
parent | be54a7c67313d170aaecbb66d1b30c8f083ad9e9 (diff) |
Changed defaultMinimumSDK() to used Qt build ANDROID_PLATFROM
Moved defaultMinimumSDK() to AndroidQtVersion
Task-number: QTCREATORBUG-32932
Change-Id: I6ca872ea89c37c6faa3ff9fd0fafa22f572d8a56
Reviewed-by: hjk <[email protected]>
Reviewed-by: Alessandro Portale <[email protected]>
-rw-r--r-- | src/plugins/android/androidbuildapkstep.cpp | 2 | ||||
-rw-r--r-- | src/plugins/android/androidconfigurations.cpp | 7 | ||||
-rw-r--r-- | src/plugins/android/androidmanifesteditor.cpp | 4 | ||||
-rw-r--r-- | src/plugins/android/androidqtversion.cpp | 19 | ||||
-rw-r--r-- | src/plugins/android/androidqtversion.h | 2 | ||||
-rw-r--r-- | src/plugins/android/androidutils.cpp | 27 | ||||
-rw-r--r-- | src/plugins/android/androidutils.h | 1 |
7 files changed, 43 insertions, 19 deletions
diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index 0e8d8290320..5e590e6b337 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -402,7 +402,7 @@ AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step) // Application group QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(m_step->kit()); - const int minApiSupported = defaultMinimumSDK(qt); + const int minApiSupported = static_cast<const AndroidQtVersion *>(qt)->defaultMinimumSDK(); QStringList targets = AndroidConfig::apiLevelNamesFor( sdkManager().filteredSdkPlatforms(minApiSupported)); targets.removeDuplicates(); diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index b88ceaf3a67..8d09d672987 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -763,13 +763,16 @@ bool isValidNdk(const FilePath &ndkPath) QString bestNdkPlatformMatch(int target, const QtVersion *qtVersion) { - target = std::max(defaultMinimumSDK(qtVersion), target); + int minSdk = 0; + if (qtVersion->isAndroidQtVersion()) + minSdk = static_cast<const AndroidQtVersion *>(qtVersion)->defaultMinimumSDK(); + target = std::max(minSdk, target); const QList<int> platforms = availableNdkPlatforms(qtVersion); for (const int apiLevel : platforms) { if (apiLevel <= target) return QString::fromLatin1("android-%1").arg(apiLevel); } - return QString("android-%1").arg(defaultMinimumSDK(qtVersion)); + return QString("android-%1").arg(minSdk); } FilePath sdkLocation() diff --git a/src/plugins/android/androidmanifesteditor.cpp b/src/plugins/android/androidmanifesteditor.cpp index 2f03b622e6f..b56cd13bfae 100644 --- a/src/plugins/android/androidmanifesteditor.cpp +++ b/src/plugins/android/androidmanifesteditor.cpp @@ -7,6 +7,7 @@ #include "androidconstants.h" #include "androidtr.h" #include "androidutils.h" +#include "androidqtversion.h" #include "splashscreencontainerwidget.h" #include <coreplugin/icore.h> @@ -1157,7 +1158,8 @@ void AndroidManifestEditorWidget::updateSdkVersions() const Target *target = androidTarget(m_textEditorWidget->textDocument()->filePath()); if (target) { const QtSupport::QtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit()); - minSdk = defaultMinimumSDK(qt); + if (qt->isAndroidQtVersion()) + minSdk = static_cast<const AndroidQtVersion *>(qt)->defaultMinimumSDK(); } for (int i = minSdk; i <= targetSdk; ++i) { diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index 3a30e79576d..e049ca30c12 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -125,6 +125,23 @@ int AndroidQtVersion::minimumNDK() const return m_minNdk; } +int AndroidQtVersion::defaultMinimumSDK() const +{ + const AndroidQtVersion::BuiltWith built = builtWith(); + + if (built.androidPlatform > 0) + return built.androidPlatform; + if (qtVersion() >= QVersionNumber(6, 8)) + return 28; + if (qtVersion() >= QVersionNumber(6, 5)) + return 26; + if (qtVersion() >=QVersionNumber(6, 0)) + return 23; + if (qtVersion() >= QVersionNumber(5, 13)) + return 21; + return 16; +} + QString AndroidQtVersion::androidDeploymentSettingsFileName(const BuildConfiguration *bc) { const BuildSystem *bs = bc->buildSystem(); @@ -226,6 +243,8 @@ static AndroidQtVersion::BuiltWith parsePlatforms(const QJsonObject &jsonObject, if (ndkVersionString.isNull()) continue; result.ndkVersion = QVersionNumber::fromString(ndkVersionString); + const QString androidPlatformString = target.value("android_platform").toString(); + result.androidPlatform = versionFromPlatformString(androidPlatformString); if (result.apiVersion != -1 && !result.ndkVersion.isNull()) { if (ok) *ok = true; diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index f07bf5fb988..7665fc98331 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -29,6 +29,7 @@ public: QString description() const override; const QStringList androidAbis() const; int minimumNDK() const; + int defaultMinimumSDK() const; static QString androidDeploymentSettingsFileName(const ProjectExplorer::BuildConfiguration *bc); static Utils::FilePath androidDeploymentSettings(const ProjectExplorer::BuildConfiguration *bc); @@ -36,6 +37,7 @@ public: struct BuiltWith { int apiVersion = -1; QVersionNumber ndkVersion; + int androidPlatform = -1; }; static BuiltWith parseModulesCoreJson(const QByteArray &modulesCoreJsonData, bool *ok = nullptr); diff --git a/src/plugins/android/androidutils.cpp b/src/plugins/android/androidutils.cpp index 95f33dd80ed..f9096b57dea 100644 --- a/src/plugins/android/androidutils.cpp +++ b/src/plugins/android/androidutils.cpp @@ -186,8 +186,13 @@ int minimumSDK(const BuildConfiguration *bc) return minimumSDK(bc->kit()); const int minSdkVersion = parseMinSdk(*element); - if (minSdkVersion == 0) - return defaultMinimumSDK(QtSupport::QtKitAspect::qtVersion(bc->kit())); + if (minSdkVersion == 0) { + QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(bc->kit()); + if (version->isAndroidQtVersion()) { + if (const AndroidQtVersion *androidQt = static_cast<const AndroidQtVersion *>(version)) + return androidQt->defaultMinimumSDK(); + } + } return minSdkVersion; } @@ -207,8 +212,12 @@ int minimumSDK(const Kit *kit) if (element) minSdkVersion = parseMinSdk(*element); } - if (minSdkVersion == 0) - return defaultMinimumSDK(version); + if (minSdkVersion == 0) { + if (version->isAndroidQtVersion()) { + if (const AndroidQtVersion *androidQt = static_cast<const AndroidQtVersion *>(version)) + return androidQt->defaultMinimumSDK(); + } + } return minSdkVersion; } @@ -474,16 +483,6 @@ void setDeviceApiLevel(BuildConfiguration *bc, int level) bc->setExtraData(ApiLevelKey, level); } -int defaultMinimumSDK(const QtSupport::QtVersion *qtVersion) -{ - if (qtVersion && qtVersion->qtVersion() >= QVersionNumber(6, 0)) - return 23; - else if (qtVersion && qtVersion->qtVersion() >= QVersionNumber(5, 13)) - return 21; - else - return 16; -} - QString androidNameForApiLevel(int x) { switch (x) { diff --git a/src/plugins/android/androidutils.h b/src/plugins/android/androidutils.h index 46c2ff4e99e..679013f93ef 100644 --- a/src/plugins/android/androidutils.h +++ b/src/plugins/android/androidutils.h @@ -48,7 +48,6 @@ QString buildTargetSDK(const ProjectExplorer::BuildConfiguration *bc); int minimumSDK(const ProjectExplorer::BuildConfiguration *bc); int minimumSDK(const ProjectExplorer::Kit *kit); -int defaultMinimumSDK(const QtSupport::QtVersion *qtVersion); QStringList applicationAbis(const ProjectExplorer::Kit *k); QString archTriplet(const QString &abi); |