forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.12'
Conflicts: src/plugins/android/androidconfigurations.cpp src/plugins/qtsupport/qtoptionspage.cpp Change-Id: I91ee3e771ab630ac3a54be53ac4be6d3c1c46950
This commit is contained in:
@@ -428,6 +428,15 @@ QString AndroidConfig::apiLevelNameFor(const SdkPlatform *platform)
|
||||
QString("android-%1").arg(platform->apiLevel()) : "";
|
||||
}
|
||||
|
||||
bool AndroidConfig::isCmdlineSdkToolsInstalled() const
|
||||
{
|
||||
QString toolPath("cmdline-tools/latest/bin/sdkmanager");
|
||||
if (HostOsInfo::isWindowsHost())
|
||||
toolPath += ANDROID_BAT_SUFFIX;
|
||||
|
||||
return m_sdkLocation.pathAppended(toolPath).exists();
|
||||
}
|
||||
|
||||
FilePath AndroidConfig::adbToolPath() const
|
||||
{
|
||||
return m_sdkLocation / "platform-tools/adb" QTC_HOST_EXE_SUFFIX;
|
||||
@@ -449,25 +458,43 @@ FilePath AndroidConfig::androidToolPath() const
|
||||
FilePath AndroidConfig::emulatorToolPath() const
|
||||
{
|
||||
QString relativePath = "emulator/emulator";
|
||||
if (sdkToolsVersion() < QVersionNumber(25, 3, 0))
|
||||
if (sdkToolsVersion() < QVersionNumber(25, 3, 0) && !isCmdlineSdkToolsInstalled())
|
||||
relativePath = "tools/emulator";
|
||||
return m_sdkLocation / (relativePath + QTC_HOST_EXE_SUFFIX);
|
||||
}
|
||||
|
||||
FilePath AndroidConfig::sdkManagerToolPath() const
|
||||
{
|
||||
QString toolPath = "tools/bin/sdkmanager";
|
||||
if (HostOsInfo::isWindowsHost())
|
||||
toolPath += ANDROID_BAT_SUFFIX;
|
||||
return m_sdkLocation / toolPath;
|
||||
QStringList sdkmanagerPaths = {"cmdline-tools/latest/bin/sdkmanager",
|
||||
"tools/bin/sdkmanager"};
|
||||
|
||||
for (QString &toolPath : sdkmanagerPaths) {
|
||||
if (HostOsInfo::isWindowsHost())
|
||||
toolPath += ANDROID_BAT_SUFFIX;
|
||||
|
||||
const FilePath sdkmanagerPath = m_sdkLocation / toolPath;
|
||||
if (sdkmanagerPath.exists())
|
||||
return sdkmanagerPath;
|
||||
}
|
||||
|
||||
return FilePath();
|
||||
}
|
||||
|
||||
FilePath AndroidConfig::avdManagerToolPath() const
|
||||
{
|
||||
QString toolPath = "tools/bin/avdmanager";
|
||||
if (HostOsInfo::isWindowsHost())
|
||||
toolPath += ANDROID_BAT_SUFFIX;
|
||||
return m_sdkLocation / toolPath;
|
||||
QStringList sdkmanagerPaths = {"cmdline-tools/latest/bin/avdmanager",
|
||||
"tools/bin/avdmanager"};
|
||||
|
||||
for (QString &toolPath : sdkmanagerPaths) {
|
||||
if (HostOsInfo::isWindowsHost())
|
||||
toolPath += ANDROID_BAT_SUFFIX;
|
||||
|
||||
const FilePath sdkmanagerPath = m_sdkLocation / toolPath;
|
||||
if (sdkmanagerPath.exists())
|
||||
return sdkmanagerPath;
|
||||
}
|
||||
|
||||
return FilePath();
|
||||
}
|
||||
|
||||
FilePath AndroidConfig::aaptToolPath() const
|
||||
@@ -812,7 +839,7 @@ QStringList AndroidConfig::getAbis(const FilePath &adbToolPath, const QString &d
|
||||
bool AndroidConfig::useNativeUiTools() const
|
||||
{
|
||||
const QVersionNumber version = sdkToolsVersion();
|
||||
return !version.isNull() && version <= QVersionNumber(25, 3 ,0);
|
||||
return !version.isNull() && version <= QVersionNumber(25, 3, 0) && !isCmdlineSdkToolsInstalled();
|
||||
}
|
||||
|
||||
bool AndroidConfig::isValidNdk(const QString &ndkLocation) const
|
||||
@@ -849,7 +876,11 @@ QVersionNumber AndroidConfig::sdkToolsVersion() const
|
||||
{
|
||||
QVersionNumber version;
|
||||
if (m_sdkLocation.exists()) {
|
||||
const FilePath sdkToolsPropertiesPath = m_sdkLocation / "tools/source.properties";
|
||||
FilePath sdkToolsPropertiesPath;
|
||||
if (isCmdlineSdkToolsInstalled())
|
||||
sdkToolsPropertiesPath = m_sdkLocation / "cmdline-tools/latest/source.properties";
|
||||
else
|
||||
sdkToolsPropertiesPath = m_sdkLocation / "tools/source.properties";
|
||||
QSettings settings(sdkToolsPropertiesPath.toString(), QSettings::IniFormat);
|
||||
auto versionStr = settings.value(sdkToolsVersionKey).toString();
|
||||
version = QVersionNumber::fromString(versionStr);
|
||||
@@ -867,7 +898,6 @@ QVersionNumber AndroidConfig::buildToolsVersion() const
|
||||
return maxVersion;
|
||||
}
|
||||
|
||||
|
||||
QStringList AndroidConfig::sdkManagerToolArgs() const
|
||||
{
|
||||
return m_sdkManagerToolArgs;
|
||||
|
||||
Reference in New Issue
Block a user