forked from qt-creator/qt-creator
Android: add support for new SDK Tools package cmdline-tools
The newly added cmdline-tools is not used by Qt Creator. So QC Android settings will be broken for users who have an Android SDK installed from Android Studio, or who updated their SDK package (i.e. tools -> cmdline-tools). This patch fixes both of the following issues: 1- QC looks for sdkmanager tools under <SDK_ROOT>/tools/bin/sdkmanager, and with the new SDK it's under <SDK_ROOT>/cmdline-tools/latest/sdkmanger. 2- QC checks the version of the SDK tools and opens the old SDK Manager for SDK tools version 25.3.0 or less. However, since cmdline-tools is now version 1.0, it causes QC to think this is an old version. Fixes: QTCREATORBUG-23726 Change-Id: I7e6bbc6840d24d358f68dfa3e229799394ace950 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/****************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
@@ -277,6 +277,7 @@ public:
|
||||
EmulatorToolsMarker = 0x400,
|
||||
NdkMarker = 0x800,
|
||||
ExtrasMarker = 0x1000,
|
||||
CmdlineSdkToolsMarker = 0x2000,
|
||||
SectionMarkers = InstalledPackagesMarker | AvailablePackagesMarkers | AvailableUpdatesMarker
|
||||
};
|
||||
|
||||
@@ -313,6 +314,7 @@ const std::map<SdkManagerOutputParser::MarkerTag, const char *> markerTags {
|
||||
{SdkManagerOutputParser::MarkerTag::SystemImageMarker, "system-images"},
|
||||
{SdkManagerOutputParser::MarkerTag::BuildToolsMarker, "build-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::SdkToolsMarker, "tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::CmdlineSdkToolsMarker, "cmdline-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::PlatformToolsMarker, "platform-tools"},
|
||||
{SdkManagerOutputParser::MarkerTag::EmulatorToolsMarker, "emulator"},
|
||||
{SdkManagerOutputParser::MarkerTag::NdkMarker, "ndk"},
|
||||
@@ -597,6 +599,10 @@ void SdkManagerOutputParser::parsePackageData(MarkerTag packageMarker, const QSt
|
||||
createPackage(&SdkManagerOutputParser::parseSdkToolsPackage);
|
||||
break;
|
||||
|
||||
case MarkerTag::CmdlineSdkToolsMarker:
|
||||
createPackage(&SdkManagerOutputParser::parseSdkToolsPackage);
|
||||
break;
|
||||
|
||||
case MarkerTag::PlatformToolsMarker:
|
||||
createPackage(&SdkManagerOutputParser::parsePlatformToolsPackage);
|
||||
break;
|
||||
@@ -882,7 +888,7 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_config.sdkToolsVersion() < sdkManagerIntroVersion) {
|
||||
if (m_config.sdkToolsVersion() < sdkManagerIntroVersion && !m_config.isCmdlineSdkToolsInstalled()) {
|
||||
// Old Sdk tools.
|
||||
m_packageListingSuccessful = true;
|
||||
AndroidToolManager toolManager(m_config);
|
||||
|
||||
Reference in New Issue
Block a user