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": [
|
"specific_qt_versions": [
|
||||||
{
|
{
|
||||||
"versions": ["default"],
|
"versions": ["default"],
|
||||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"],
|
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"]
|
||||||
"ndk_path": "ndk/25.1.8937393"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"versions": ["6.4"],
|
"versions": ["6.4"],
|
||||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"],
|
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"]
|
||||||
"ndk_path": "ndk/23.1.7779620"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"versions": ["6.3", "6.2", "5.15.[9-20]"],
|
"versions": ["6.3", "6.2", "5.15.[9-20]"],
|
||||||
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"],
|
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"]
|
||||||
"ndk_path": "ndk/22.1.7171670"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"versions": ["5.15.[0-8]", "5.14.[0-2]", "5.13.2", "6.0", "6.1"],
|
"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"],
|
"sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147"]
|
||||||
"ndk_path": "ndk/21.3.6528147"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
|
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
|
||||||
"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"],
|
"sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"]
|
||||||
"ndk_path": "ndk/19.2.5345600"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -77,7 +77,7 @@ const char SdkToolsUrlKey[] = "sdk_tools_url";
|
|||||||
const char CommonKey[] = "common";
|
const char CommonKey[] = "common";
|
||||||
const char SdkEssentialPkgsKey[] = "sdk_essential_packages";
|
const char SdkEssentialPkgsKey[] = "sdk_essential_packages";
|
||||||
const char VersionsKey[] = "versions";
|
const char VersionsKey[] = "versions";
|
||||||
const char NdkPathKey[] = "ndk_path";
|
const char NdksSubDir[] = "ndk/";
|
||||||
const char SpecificQtVersionsKey[] = "specific_qt_versions";
|
const char SpecificQtVersionsKey[] = "specific_qt_versions";
|
||||||
const char DefaultVersionKey[] = "default";
|
const char DefaultVersionKey[] = "default";
|
||||||
const char LinuxOsKey[] = "linux";
|
const char LinuxOsKey[] = "linux";
|
||||||
@@ -123,6 +123,11 @@ namespace {
|
|||||||
{
|
{
|
||||||
return Core::ICore::installerResourcePath("android.xml").toString();
|
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) {
|
for (const QJsonValue &item : versionsArray) {
|
||||||
QJsonObject itemObj = item.toObject();
|
QJsonObject itemObj = item.toObject();
|
||||||
SdkForQtVersions specificVersion;
|
SdkForQtVersions specificVersion;
|
||||||
specificVersion.ndkPath = itemObj[NdkPathKey].toString();
|
|
||||||
const auto pkgs = itemObj[SdkEssentialPkgsKey].toArray();
|
const auto pkgs = itemObj[SdkEssentialPkgsKey].toArray();
|
||||||
for (const QJsonValue &pkg : pkgs)
|
for (const QJsonValue &pkg : pkgs)
|
||||||
specificVersion.essentialPackages.append(pkg.toString());
|
specificVersion.essentialPackages.append(pkg.toString());
|
||||||
@@ -850,7 +854,7 @@ FilePath AndroidConfig::ndkLocation(const QtVersion *qtVersion) const
|
|||||||
{
|
{
|
||||||
if (!m_defaultNdk.isEmpty())
|
if (!m_defaultNdk.isEmpty())
|
||||||
return m_defaultNdk; // A selected default NDK is good for any Qt version
|
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
|
QVersionNumber AndroidConfig::ndkVersion(const QtVersion *qtVersion) const
|
||||||
@@ -929,8 +933,8 @@ bool AndroidConfig::allEssentialsInstalled(AndroidSdkManager *sdkManager)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!m_defaultNdk.isEmpty())
|
if (!m_defaultNdk.isEmpty())
|
||||||
essentialPkgs = Utils::filtered(essentialPkgs,
|
essentialPkgs = Utils::filtered(essentialPkgs, [] (const QString &p) {
|
||||||
[](const QString &p){ return !p.startsWith("ndk;"); });
|
return !p.startsWith(ndkPackageMarker()); });
|
||||||
return essentialPkgs.isEmpty() ? true : false;
|
return essentialPkgs.isEmpty() ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -952,13 +956,23 @@ QStringList AndroidConfig::essentialsFromQtVersion(const QtVersion &version) con
|
|||||||
return m_defaultSdkDepends.essentialPackages;
|
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)
|
for (const SdkForQtVersions &item : m_specificQtVersions)
|
||||||
if (item.containsVersion(version.qtVersion()))
|
if (item.containsVersion(version.qtVersion()))
|
||||||
return item.ndkPath;
|
return ndkSubPath(item);
|
||||||
|
|
||||||
return m_defaultSdkDepends.ndkPath;
|
return ndkSubPath(m_defaultSdkDepends);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList AndroidConfig::defaultEssentials() const
|
QStringList AndroidConfig::defaultEssentials() const
|
||||||
|
@@ -51,7 +51,6 @@ struct SdkForQtVersions
|
|||||||
{
|
{
|
||||||
QList<QVersionNumber> versions;
|
QList<QVersionNumber> versions;
|
||||||
QStringList essentialPackages;
|
QStringList essentialPackages;
|
||||||
QString ndkPath;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool containsVersion(const QVersionNumber &qtVersion) const;
|
bool containsVersion(const QVersionNumber &qtVersion) const;
|
||||||
@@ -80,7 +79,7 @@ public:
|
|||||||
|
|
||||||
QUrl sdkToolsUrl() const { return m_sdkToolsUrl; }
|
QUrl sdkToolsUrl() const { return m_sdkToolsUrl; }
|
||||||
QByteArray getSdkToolsSha256() const { return m_sdkToolsSha256; }
|
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 defaultEssentials() const;
|
||||||
QStringList essentialsFromQtVersion(const QtSupport::QtVersion &version) const;
|
QStringList essentialsFromQtVersion(const QtSupport::QtVersion &version) const;
|
||||||
|
@@ -81,6 +81,7 @@ const Utils::Id AndroidAvdPath = "AndroidAvdPath";
|
|||||||
|
|
||||||
// SDK Tools
|
// SDK Tools
|
||||||
const char cmdlineToolsName[] = "cmdline-tools";
|
const char cmdlineToolsName[] = "cmdline-tools";
|
||||||
|
const char ndkPackageName[] = "ndk";
|
||||||
|
|
||||||
} // namespace Constants;
|
} // namespace Constants;
|
||||||
} // namespace Android
|
} // namespace Android
|
||||||
|
@@ -295,7 +295,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags, ({
|
|||||||
{SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, Constants::cmdlineToolsName},
|
{SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, Constants::cmdlineToolsName},
|
||||||
{SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
|
{SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
|
||||||
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
|
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
|
||||||
{SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"},
|
{SdkManagerOutputParser::MarkerTag::NdkMarker, Constants::ndkPackageName},
|
||||||
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
|
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user