aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@theqtcompany.com>2015-11-22 16:19:14 -0800
committerJake Petroules <jake.petroules@theqtcompany.com>2016-01-11 16:52:28 +0000
commit56f1d95716f1af57d63f51df6fcc3a1bd8ca3ee4 (patch)
tree0878b6a27f1d20fbaf676d6c76d715c293da5410 /share
parentbb1eee72fd0224736bb4bdbb7f0be4fbbbe96f24 (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.qbs25
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs16
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs1
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)
}