aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-04-04 10:31:53 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-04-05 07:34:42 +0000
commite0c6f88fe51186eb6fc697ba74f60136bf2106e4 (patch)
tree4bc7abe667fcf598054c8886d8172326278329be
parent412d81bca2bcb7bf36632770a256f6c6b80facee (diff)
Android: Auto-detect Android.ndk.platform
... the same way as Android.sdk.platform. Change-Id: I974fdfd9f56f312cbd39ea155d87694622a9c0b8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs5
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs3
-rw-r--r--share/qbs/modules/Android/android-utils.js50
-rw-r--r--share/qbs/modules/Android/ndk/ndk.qbs4
-rw-r--r--share/qbs/modules/Android/sdk/utils.js18
-rw-r--r--tests/auto/blackbox/tst_blackboxandroid.cpp3
6 files changed, 59 insertions, 24 deletions
diff --git a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
index d7c80144e..f7abce388 100644
--- a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
@@ -33,6 +33,7 @@ import qbs.Environment
import qbs.File
import qbs.FileInfo
import qbs.TextFile
+import "../../../modules/Android/android-utils.js" as AndroidUtils
PathProbe {
// Inputs
@@ -62,6 +63,7 @@ PathProbe {
property var hostArch
property stringList toolchains: []
property string ndkVersion
+ property string ndkPlatform
configure: {
function readFileContent(filePath) {
@@ -91,6 +93,9 @@ PathProbe {
for (j in platforms) {
if (File.exists(FileInfo.joinPaths(allPaths[i], "prebuilt", platforms[j]))) {
path = allPaths[i];
+ var ndkPlatforms = AndroidUtils.availablePlatforms(path);
+ if (ndkPlatforms.length > 0)
+ ndkPlatform = ndkPlatforms[ndkPlatforms.length - 1];
if (File.exists(FileInfo.joinPaths(path, "samples")))
samplesDir = FileInfo.joinPaths(path, "samples"); // removed in r11
hostArch = platforms[j];
diff --git a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
index 28a9c568a..38feecdfa 100644
--- a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
@@ -32,6 +32,7 @@ import qbs.Environment
import qbs.File
import qbs.FileInfo
import "../../../modules/Android/sdk/utils.js" as SdkUtils
+import "../../../modules/Android/android-utils.js" as AndroidUtils
BinaryProbe {
environmentPaths: Environment.getEnv("ANDROID_HOME")
@@ -62,7 +63,7 @@ BinaryProbe {
path = allPaths[i];
buildToolsVersions = SdkUtils.availableBuildToolsVersions(path)
buildToolsVersion = buildToolsVersions[buildToolsVersions.length - 1];
- platforms = SdkUtils.availableSdkPlatforms(path)
+ platforms = AndroidUtils.availablePlatforms(path)
platform = platforms[platforms.length - 1];
found = true;
return;
diff --git a/share/qbs/modules/Android/android-utils.js b/share/qbs/modules/Android/android-utils.js
new file mode 100644
index 000000000..f5684d00f
--- /dev/null
+++ b/share/qbs/modules/Android/android-utils.js
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing
+**
+** This file is part of Qbs.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms and
+** conditions see http://www.qt.io/terms-conditions. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+var File = require("qbs.File");
+var FileInfo = require("qbs.FileInfo");
+
+function availablePlatforms(baseDir) {
+ var re = /^android-([0-9]+)$/;
+ var platforms = File.directoryEntries(FileInfo.joinPaths(baseDir, "platforms"),
+ File.Dirs | File.NoDotAndDotDot);
+ var versions = [];
+ for (var i = 0; i < platforms.length; ++i) {
+ var match = platforms[i].match(re);
+ if (match !== null) {
+ versions.push(platforms[i]);
+ }
+ }
+
+ versions.sort(function (a, b) {
+ return parseInt(a.match(re)[1], 10) - parseInt(b.match(re)[1], 10);
+ });
+ return versions;
+}
diff --git a/share/qbs/modules/Android/ndk/ndk.qbs b/share/qbs/modules/Android/ndk/ndk.qbs
index 94211ea39..5d86d6e3a 100644
--- a/share/qbs/modules/Android/ndk/ndk.qbs
+++ b/share/qbs/modules/Android/ndk/ndk.qbs
@@ -71,9 +71,7 @@ Module {
property string hostArch: ndkProbe.hostArch
property string ndkDir: ndkProbe.path
property string ndkSamplesDir: ndkProbe.samplesDir
- property string platform: version && Utilities.versionCompare(version, "15") >= 0
- ? "android-14"
- : "android-9"
+ property string platform: ndkProbe.ndkPlatform
property bool useUnifiedHeaders: version && Utilities.versionCompare(version, "15") >= 0
diff --git a/share/qbs/modules/Android/sdk/utils.js b/share/qbs/modules/Android/sdk/utils.js
index 6a89fd5f2..3af179df2 100644
--- a/share/qbs/modules/Android/sdk/utils.js
+++ b/share/qbs/modules/Android/sdk/utils.js
@@ -34,24 +34,6 @@ var Process = require("qbs.Process");
var TextFile = require("qbs.TextFile");
var Utilities = require("qbs.Utilities");
-function availableSdkPlatforms(sdkDir) {
- var re = /^android-([0-9]+)$/;
- var platforms = File.directoryEntries(FileInfo.joinPaths(sdkDir, "platforms"),
- File.Dirs | File.NoDotAndDotDot);
- var versions = [];
- for (var i = 0; i < platforms.length; ++i) {
- var match = platforms[i].match(re);
- if (match !== null) {
- versions.push(platforms[i]);
- }
- }
-
- versions.sort(function (a, b) {
- return parseInt(a.match(re)[1], 10) - parseInt(b.match(re)[1], 10);
- });
- return versions;
-}
-
function availableBuildToolsVersions(sdkDir) {
var re = /^([0-9]+)\.([0-9]+)\.([0-9]+)$/;
var buildTools = File.directoryEntries(FileInfo.joinPaths(sdkDir, "build-tools"),
diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp
index caf7cf0bc..e312c4493 100644
--- a/tests/auto/blackbox/tst_blackboxandroid.cpp
+++ b/tests/auto/blackbox/tst_blackboxandroid.cpp
@@ -110,8 +110,7 @@ void TestBlackboxAndroid::android()
auto currentExpectedFilesLists = expectedFilesLists;
const QString configArgument = "config:" + configName;
QbsRunParameters resolveParams("resolve");
- resolveParams.arguments << "modules.Android.ndk.platform:android-21" << configArgument
- << customProperties;
+ resolveParams.arguments << configArgument << customProperties;
resolveParams.profile = p.name();
QCOMPARE(runQbs(resolveParams), 0);
QbsRunParameters buildParams(QStringList{"--command-echo-mode", "command-line",