forked from qt-creator/qt-creator
Android: Remove "ndkPath" entry from sdk_definitions.json
Since a long while, an ndk within an Android SDK installation resides under a subdirectory "ndk/<ndkversion>". The "ndk_path" entry in sdk_definitions.json is therefore redundant, since the ndk version is already present. Qt 6.5+ will provide the ndk version number (see QTCREATORBUG-28629), without such ndk_path, and therefore it is helpful to contruct the ndk subpath directly from that version number. For all Qt versions. This change removes the "ndkPath" entry and the code that handles it. Task-number: QTCREATORBUG-28629 Change-Id: I5a8f204f87a53a610dbeb9d4c39633582ef209c1 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
@@ -18,28 +18,23 @@
|
||||
"specific_qt_versions": [
|
||||
{
|
||||
"versions": ["default"],
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"],
|
||||
"ndk_path": "ndk/25.1.8937393"
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"]
|
||||
},
|
||||
{
|
||||
"versions": ["6.4"],
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"],
|
||||
"ndk_path": "ndk/23.1.7779620"
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"]
|
||||
},
|
||||
{
|
||||
"versions": ["6.3", "6.2", "5.15.[9-20]"],
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"],
|
||||
"ndk_path": "ndk/22.1.7171670"
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"]
|
||||
},
|
||||
{
|
||||
"versions": ["5.15.[0-8]", "5.14.[0-2]", "5.13.2", "6.0", "6.1"],
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147"],
|
||||
"ndk_path": "ndk/21.3.6528147"
|
||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147"]
|
||||
},
|
||||
{
|
||||
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
|
||||
"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"],
|
||||
"ndk_path": "ndk/19.2.5345600"
|
||||
"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@@ -77,7 +77,7 @@ const char SdkToolsUrlKey[] = "sdk_tools_url";
|
||||
const char CommonKey[] = "common";
|
||||
const char SdkEssentialPkgsKey[] = "sdk_essential_packages";
|
||||
const char VersionsKey[] = "versions";
|
||||
const char NdkPathKey[] = "ndk_path";
|
||||
const char NdksSubDir[] = "ndk/";
|
||||
const char SpecificQtVersionsKey[] = "specific_qt_versions";
|
||||
const char DefaultVersionKey[] = "default";
|
||||
const char LinuxOsKey[] = "linux";
|
||||
@@ -123,6 +123,11 @@ namespace {
|
||||
{
|
||||
return Core::ICore::installerResourcePath("android.xml").toString();
|
||||
}
|
||||
|
||||
static QString ndkPackageMarker()
|
||||
{
|
||||
return QLatin1String(Constants::ndkPackageName) + ";";
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////
|
||||
@@ -312,7 +317,6 @@ void AndroidConfig::parseDependenciesJson()
|
||||
for (const QJsonValue &item : versionsArray) {
|
||||
QJsonObject itemObj = item.toObject();
|
||||
SdkForQtVersions specificVersion;
|
||||
specificVersion.ndkPath = itemObj[NdkPathKey].toString();
|
||||
const auto pkgs = itemObj[SdkEssentialPkgsKey].toArray();
|
||||
for (const QJsonValue &pkg : pkgs)
|
||||
specificVersion.essentialPackages.append(pkg.toString());
|
||||
@@ -850,7 +854,7 @@ FilePath AndroidConfig::ndkLocation(const QtVersion *qtVersion) const
|
||||
{
|
||||
if (!m_defaultNdk.isEmpty())
|
||||
return m_defaultNdk; // A selected default NDK is good for any Qt version
|
||||
return sdkLocation().pathAppended(ndkPathFromQtVersion(*qtVersion));
|
||||
return sdkLocation().resolvePath(ndkSubPathFromQtVersion(*qtVersion));
|
||||
}
|
||||
|
||||
QVersionNumber AndroidConfig::ndkVersion(const QtVersion *qtVersion) const
|
||||
@@ -929,8 +933,8 @@ bool AndroidConfig::allEssentialsInstalled(AndroidSdkManager *sdkManager)
|
||||
break;
|
||||
}
|
||||
if (!m_defaultNdk.isEmpty())
|
||||
essentialPkgs = Utils::filtered(essentialPkgs,
|
||||
[](const QString &p){ return !p.startsWith("ndk;"); });
|
||||
essentialPkgs = Utils::filtered(essentialPkgs, [] (const QString &p) {
|
||||
return !p.startsWith(ndkPackageMarker()); });
|
||||
return essentialPkgs.isEmpty() ? true : false;
|
||||
}
|
||||
|
||||
@@ -952,13 +956,23 @@ QStringList AndroidConfig::essentialsFromQtVersion(const QtVersion &version) con
|
||||
return m_defaultSdkDepends.essentialPackages;
|
||||
}
|
||||
|
||||
QString AndroidConfig::ndkPathFromQtVersion(const QtVersion &version) const
|
||||
static FilePath ndkSubPath(const SdkForQtVersions &packages)
|
||||
{
|
||||
const QString ndkPrefix = ndkPackageMarker();
|
||||
for (const QString &package : packages.essentialPackages)
|
||||
if (package.startsWith(ndkPrefix))
|
||||
return FilePath::fromString(NdksSubDir) / package.sliced(ndkPrefix.length());
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
FilePath AndroidConfig::ndkSubPathFromQtVersion(const QtVersion &version) const
|
||||
{
|
||||
for (const SdkForQtVersions &item : m_specificQtVersions)
|
||||
if (item.containsVersion(version.qtVersion()))
|
||||
return item.ndkPath;
|
||||
return ndkSubPath(item);
|
||||
|
||||
return m_defaultSdkDepends.ndkPath;
|
||||
return ndkSubPath(m_defaultSdkDepends);
|
||||
}
|
||||
|
||||
QStringList AndroidConfig::defaultEssentials() const
|
||||
|
@@ -51,7 +51,6 @@ struct SdkForQtVersions
|
||||
{
|
||||
QList<QVersionNumber> versions;
|
||||
QStringList essentialPackages;
|
||||
QString ndkPath;
|
||||
|
||||
public:
|
||||
bool containsVersion(const QVersionNumber &qtVersion) const;
|
||||
@@ -80,7 +79,7 @@ public:
|
||||
|
||||
QUrl sdkToolsUrl() const { return m_sdkToolsUrl; }
|
||||
QByteArray getSdkToolsSha256() const { return m_sdkToolsSha256; }
|
||||
QString ndkPathFromQtVersion(const QtSupport::QtVersion &version) const;
|
||||
Utils::FilePath ndkSubPathFromQtVersion(const QtSupport::QtVersion &version) const; // relative!
|
||||
|
||||
QStringList defaultEssentials() const;
|
||||
QStringList essentialsFromQtVersion(const QtSupport::QtVersion &version) const;
|
||||
|
@@ -81,6 +81,7 @@ const Utils::Id AndroidAvdPath = "AndroidAvdPath";
|
||||
|
||||
// SDK Tools
|
||||
const char cmdlineToolsName[] = "cmdline-tools";
|
||||
const char ndkPackageName[] = "ndk";
|
||||
|
||||
} // namespace Constants;
|
||||
} // namespace Android
|
||||
|
@@ -295,7 +295,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags, ({
|
||||
{SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, Constants::cmdlineToolsName},
|
||||
{SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
|
||||
{SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"},
|
||||
{SdkManagerOutputParser::MarkerTag::NdkMarker, Constants::ndkPackageName},
|
||||
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
|
||||
}));
|
||||
|
||||
|
Reference in New Issue
Block a user