aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs3
-rw-r--r--share/qbs/modules/Android/ndk/ndk.qbs1
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs1
-rw-r--r--tests/auto/blackbox/find/find-android.qbs1
-rw-r--r--tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs35
-rw-r--r--tests/auto/blackbox/tst_blackboxjava.cpp4
6 files changed, 42 insertions, 3 deletions
diff --git a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
index 4ef0e795a..82a60bccd 100644
--- a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
@@ -57,6 +57,7 @@ PathProbe {
}
// Outputs
+ property string samplesDir
property var hostArch
property stringList toolchains: []
property string ndkVersion
@@ -74,6 +75,8 @@ PathProbe {
for (j in platforms) {
if (File.exists(FileInfo.joinPaths(allPaths[i], "prebuilt", platforms[j]))) {
path = allPaths[i];
+ if (File.exists(FileInfo.joinPaths(path, "samples")))
+ samplesDir = FileInfo.joinPaths(path, "samples"); // removed in r11
hostArch = platforms[j];
toolchains = File.directoryEntries(FileInfo.joinPaths(path, "toolchains"),
File.Dirs | File.NoDotAndDotDot);
diff --git a/share/qbs/modules/Android/ndk/ndk.qbs b/share/qbs/modules/Android/ndk/ndk.qbs
index 3063fcf29..aee0b30ba 100644
--- a/share/qbs/modules/Android/ndk/ndk.qbs
+++ b/share/qbs/modules/Android/ndk/ndk.qbs
@@ -70,6 +70,7 @@ Module {
property string hostArch: ndkProbe.hostArch
property string ndkDir: ndkProbe.path
+ property string ndkSamplesDir: ndkProbe.samplesDir
property string platform: "android-9"
property bool useUnifiedHeaders: Utilities.versionCompare(version, "14") >= 0
diff --git a/share/qbs/modules/Android/sdk/sdk.qbs b/share/qbs/modules/Android/sdk/sdk.qbs
index d07c2778f..bca52a203 100644
--- a/share/qbs/modules/Android/sdk/sdk.qbs
+++ b/share/qbs/modules/Android/sdk/sdk.qbs
@@ -51,6 +51,7 @@ Module {
property path sdkDir: sdkProbe.path
property path ndkDir: ndkProbe.path
+ property path ndkSamplesDir: ndkProbe.samplesDir
property string buildToolsVersion: sdkProbe.buildToolsVersion
property var buildToolsVersionParts: buildToolsVersion ? buildToolsVersion.split('.').map(function(item) { return parseInt(item, 10); }) : []
property int buildToolsVersionMajor: buildToolsVersionParts[0]
diff --git a/tests/auto/blackbox/find/find-android.qbs b/tests/auto/blackbox/find/find-android.qbs
index 7b4ac159b..23c8b2f91 100644
--- a/tests/auto/blackbox/find/find-android.qbs
+++ b/tests/auto/blackbox/find/find-android.qbs
@@ -24,6 +24,7 @@ Product {
if (product.moduleProperty("Android.ndk", "present")) {
tools["ndk"] = product.moduleProperty("Android.ndk", "ndkDir");
+ tools["ndk-samples"] = product.Android.ndk.ndkSamplesDir;
}
var tf;
diff --git a/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs b/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs
index dbacef92d..ff3077335 100644
--- a/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs
+++ b/tests/auto/blackbox/testdata-java/android/teapot/teapot.qbs
@@ -1,4 +1,5 @@
import qbs
+import qbs.File
Project {
minimumQbsVersion: qbs.version
@@ -62,9 +63,24 @@ Project {
Depends { name: "native-glue" }
Depends { name: "ndk-helper" }
+ Probe {
+ id: teapotProbeJni
+ property string samplesDir: Android.ndk.ndkSamplesDir
+ property string jniDir
+ configure: {
+ var paths = ["/teapots/classic-teapot/src/main/cpp/", "/Teapot/app/src/main/jni/"];
+ for (var i = 0; i < paths.length; ++i) {
+ if (File.exists(samplesDir + paths[i])) {
+ jniDir = samplesDir + paths[i];
+ break;
+ }
+ }
+ }
+ }
+
Group {
name: "C++ sources"
- prefix: Android.ndk.ndkDir + "/samples/Teapot/app/src/main/jni/"
+ prefix: teapotProbeJni.jniDir
files: [
"TeapotNativeActivity.cpp",
"TeapotRenderer.cpp",
@@ -81,8 +97,23 @@ Project {
}
AndroidApk {
+ Probe {
+ id: teapotProbe
+ property string samplesDir: Android.sdk.ndkSamplesDir
+ property string dir
+ configure: {
+ var paths = ["/teapots/classic-teapot/src/main", "/Teapot/app/src/main"];
+ for (var i = 0; i < paths.length; ++i) {
+ if (File.exists(samplesDir + paths[i])) {
+ dir = samplesDir + paths[i];
+ break;
+ }
+ }
+ }
+ }
+
name: "com.sample.teapot"
- sourceSetDir: Android.sdk.ndkDir + "/samples/Teapot/app/src/main"
+ sourceSetDir: teapotProbe.dir
Depends { productTypes: ["android.nativelibrary"] }
}
}
diff --git a/tests/auto/blackbox/tst_blackboxjava.cpp b/tests/auto/blackbox/tst_blackboxjava.cpp
index 0dc7e6346..50c7dd5df 100644
--- a/tests/auto/blackbox/tst_blackboxjava.cpp
+++ b/tests/auto/blackbox/tst_blackboxjava.cpp
@@ -54,6 +54,7 @@ QMap<QString, QString> TestBlackboxJava::findAndroid(int *status)
return QMap<QString, QString> {
{"sdk", QDir::fromNativeSeparators(tools["sdk"].toString())},
{"ndk", QDir::fromNativeSeparators(tools["ndk"].toString())},
+ {"ndk-samples", QDir::fromNativeSeparators(tools["ndk-samples"].toString())},
};
}
@@ -71,8 +72,9 @@ void TestBlackboxJava::android()
const auto androidPaths = findAndroid(&status);
const auto ndkPath = androidPaths["ndk"];
+ const auto ndkSamplesPath = androidPaths["ndk-samples"];
static const QStringList ndkSamplesDirs = QStringList() << "teapot" << "no-native";
- if (!ndkPath.isEmpty() && !QFileInfo(ndkPath + "/samples").isDir()
+ if (!ndkPath.isEmpty() && !QFileInfo(ndkSamplesPath).isDir()
&& ndkSamplesDirs.contains(projectDir))
QSKIP("NDK samples directory not present");