diff options
author | Jake Petroules <jake.petroules@theqtcompany.com> | 2015-11-22 16:19:14 -0800 |
---|---|---|
committer | Jake Petroules <jake.petroules@theqtcompany.com> | 2016-01-11 16:52:28 +0000 |
commit | 56f1d95716f1af57d63f51df6fcc3a1bd8ca3ee4 (patch) | |
tree | 0878b6a27f1d20fbaf676d6c76d715c293da5410 /share | |
parent | bb1eee72fd0224736bb4bdbb7f0be4fbbbe96f24 (diff) |
Search for Android SDK/NDK in standard location(s).
The latest Android SDK actually includes the NDK as a component, at
sdkPath + "/ndk-bundle", and the official Android IDE, Android Studio,
installs the SDK at ~/Library/Android/sdk on OS X.
Change-Id: I557f01899c264adfb8bdf731cec690703866b899
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs | 25 | ||||
-rw-r--r-- | share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs | 16 | ||||
-rw-r--r-- | share/qbs/modules/Android/sdk/sdk.qbs | 1 |
3 files changed, 33 insertions, 9 deletions
diff --git a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs index 18d30faae..3e94d765a 100644 --- a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs +++ b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs @@ -36,15 +36,31 @@ import qbs.FileInfo PathProbe { // Inputs property stringList hostOS: qbs.hostOS + property path sdkPath environmentPaths: Environment.getEnv("ANDROID_NDK_ROOT") + platformPaths: { + var paths = []; + if (sdkPath) + paths.push(FileInfo.joinPaths(sdkPath, "ndk-bundle")); + if (qbs.hostOS.contains("windows")) + paths.push(FileInfo.joinPaths(Environment.getEnv("LOCALAPPDATA"), + "Android", "sdk", "ndk-bundle")); + if (qbs.hostOS.contains("osx")) + paths.push(FileInfo.joinPaths(Environment.getEnv("HOME"), + "Library", "Android", "sdk", "ndk-bundle")); + if (qbs.hostOS.contains("linux")) + paths.push(FileInfo.joinPaths(Environment.getEnv("HOME"), + "Android", "Sdk", "ndk-bundle")); + return paths; + } // Outputs property var hostArch configure: { - var i, j; - for (i in environmentPaths) { + var i, j, allPaths = (environmentPaths || []).concat(platformPaths || []); + for (i in allPaths) { var platforms = []; if (hostOS.contains("windows")) platforms.push("windows-x86_64", "windows"); @@ -53,9 +69,8 @@ PathProbe { if (hostOS.contains("linux")) platforms.push("linux-x86_64", "linux-x86"); for (j in platforms) { - if (File.exists(FileInfo.joinPaths(environmentPaths[i], "prebuilt", - platforms[j]))) { - path = environmentPaths[i]; + if (File.exists(FileInfo.joinPaths(allPaths[i], "prebuilt", platforms[j]))) { + path = allPaths[i]; hostArch = platforms[j]; found = true; return; diff --git a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs index fb004703c..a00f36434 100644 --- a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs +++ b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs @@ -36,6 +36,14 @@ import "../../../modules/Android/sdk/utils.js" as SdkUtils PathProbe { environmentPaths: Environment.getEnv("ANDROID_HOME") + platformPaths: { + if (qbs.hostOS.contains("windows")) + return [FileInfo.joinPaths(Environment.getEnv("LOCALAPPDATA"), "Android", "sdk")]; + if (qbs.hostOS.contains("osx")) + return [FileInfo.joinPaths(Environment.getEnv("HOME"), "Library", "Android", "sdk")]; + if (qbs.hostOS.contains("linux")) + return [FileInfo.joinPaths(Environment.getEnv("HOME"), "Android", "Sdk")]; + } // Outputs property var buildToolsVersions @@ -44,10 +52,10 @@ PathProbe { property string platform configure: { - var i; - for (i in environmentPaths) { - if (File.exists(FileInfo.joinPaths(environmentPaths[i], "tools", "android"))) { - path = environmentPaths[i]; + var i, allPaths = (environmentPaths || []).concat(platformPaths || []); + for (i in allPaths) { + if (File.exists(FileInfo.joinPaths(allPaths[i], "tools", "android"))) { + path = allPaths[i]; buildToolsVersions = SdkUtils.availableBuildToolsVersions(path) buildToolsVersion = buildToolsVersions[buildToolsVersions.length - 1]; platforms = SdkUtils.availableSdkPlatforms(path) diff --git a/share/qbs/modules/Android/sdk/sdk.qbs b/share/qbs/modules/Android/sdk/sdk.qbs index 9ce60fb35..451981f0f 100644 --- a/share/qbs/modules/Android/sdk/sdk.qbs +++ b/share/qbs/modules/Android/sdk/sdk.qbs @@ -45,6 +45,7 @@ Module { Probes.AndroidNdkProbe { id: ndkProbe + sdkPath: sdkProbe.path environmentPaths: [ndkDir].concat(base) } |