From b20256ccef06f515d1cbfdd51bf2b2398d114c70 Mon Sep 17 00:00:00 2001 From: Max Bespalov Date: Sun, 19 Jun 2022 14:21:41 +0200 Subject: Fix Android build-tools detection, if it was installed via cmdline-tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The modern way to install android packages is to use cmdline-tools. The old way was to use SDK tools, but now it is deprecated (see https://developer.android.com/studio/releases/sdk-tools). There is a code in AndroidSdkProbe which looks for android executable in SDK tools folder to prove, that the folder does contain Android SDK. But if you use cmdline-tools, there is no folder "tools" anymore. The probe fails to find build tools. The fix is to look for build-tools directory. Fixes: QBS-1700 Change-Id: Iad92664ba07d034ba365e8b7b178cd47f5d3f187 Reviewed-by: Raphaƫl Cotty Reviewed-by: Christian Kandeler --- share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs index 28375a469..5b777d3e2 100644 --- a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs +++ b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs @@ -35,7 +35,7 @@ import qbs.Host import "../../../modules/Android/sdk/utils.js" as SdkUtils import "../../../modules/Android/android-utils.js" as AndroidUtils -BinaryProbe { +PathProbe { environmentPaths: Environment.getEnv("ANDROID_HOME") platformSearchPaths: { if (Host.os().contains("windows")) @@ -54,21 +54,17 @@ BinaryProbe { property string platform configure: { - var suffixes = nameSuffixes || [""]; var i, allPaths = (environmentPaths || []).concat(platformSearchPaths || []); candidatePaths = allPaths; for (i in allPaths) { - for (var j in suffixes) { - if (File.exists(FileInfo.joinPaths(allPaths[i], - "tools", "android" + suffixes[j]))) { - path = allPaths[i]; - buildToolsVersions = SdkUtils.availableBuildToolsVersions(path) - buildToolsVersion = buildToolsVersions[buildToolsVersions.length - 1]; - platforms = AndroidUtils.availablePlatforms(path) - platform = platforms[platforms.length - 1]; - found = true; - return; - } + if (File.exists(FileInfo.joinPaths(allPaths[i], "build-tools"))) { + path = allPaths[i]; + buildToolsVersions = SdkUtils.availableBuildToolsVersions(path) + buildToolsVersion = buildToolsVersions[buildToolsVersions.length - 1]; + platforms = AndroidUtils.availablePlatforms(path) + platform = platforms[platforms.length - 1]; + found = true; + return; } } } -- cgit v1.2.3