aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSheree Morphett <[email protected]>2025-06-17 14:44:06 +0300
committersheree morphett <[email protected]>2025-07-01 13:31:16 +0000
commitbea33f47bfdf002eb5095c0de06107d34db32e8a (patch)
tree8d896b60f02067bb3c8b679e63be7308f44252d3
parentbe54a7c67313d170aaecbb66d1b30c8f083ad9e9 (diff)
Set default SDK based on Qt ANDROID_PLATFORMHEADmaster
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.cpp2
-rw-r--r--src/plugins/android/androidconfigurations.cpp7
-rw-r--r--src/plugins/android/androidmanifesteditor.cpp4
-rw-r--r--src/plugins/android/androidqtversion.cpp19
-rw-r--r--src/plugins/android/androidqtversion.h2
-rw-r--r--src/plugins/android/androidutils.cpp27
-rw-r--r--src/plugins/android/androidutils.h1
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);