From 61ddc0685e0edc35b5fc39fdebacf08c64dbc991 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Oct 2018 17:11:31 +0200 Subject: Android support: Adapt to changes in newer revisions Revision 17 dropped some architectures, revision 18 removed GCC. We also missed some earlier changes to clang-related paths. Change-Id: Ie2fa1891f7f4de28e18ea6caadce9eac964bb523 Reviewed-by: Alexandru Croitor --- .../multiple-apks-per-project/product1/product1.qbs | 4 +++- .../multiple-apks-per-project/product2/product2.qbs | 1 + .../multiple-libs-per-apk/multiple-libs-per-apk.qbs | 2 ++ tests/auto/blackbox/testdata-android/teapot/teapot.qbs | 2 ++ tests/auto/blackbox/tst_blackboxandroid.cpp | 16 ++++++++++------ 5 files changed, 18 insertions(+), 7 deletions(-) (limited to 'tests') diff --git a/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs index 63256af54..eb63d4c20 100644 --- a/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs +++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product1/product1.qbs @@ -7,8 +7,9 @@ Project { name: "p1lib1" files: ["src/main/jni/lib1.cpp"] qbs.targetPlatform: "android" + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "stlport_shared" - qbs.architectures: !qbs.architecture ? ["mips", "x86"] : undefined + qbs.architectures: !qbs.architecture ? ["armv7a", "x86"] : undefined cpp.useRPaths: false } @@ -18,6 +19,7 @@ Project { name: "p1lib2" files: ["src/main/jni/lib2.cpp"] qbs.targetPlatform: "android" + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "stlport_shared" cpp.useRPaths: false } diff --git a/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs index a4f94f671..9b7f3eb54 100644 --- a/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs +++ b/tests/auto/blackbox/testdata-android/multiple-apks-per-project/product2/product2.qbs @@ -15,6 +15,7 @@ Project { name: "p2lib2" files: ["src/main/jni/lib2.cpp"] qbs.targetPlatform: "android" + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "stlport_shared" } diff --git a/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs index 499a5111b..6dd4e6bdb 100644 --- a/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs +++ b/tests/auto/blackbox/testdata-android/multiple-libs-per-apk/multiple-libs-per-apk.qbs @@ -7,6 +7,7 @@ Project { name: "lib1" files: ["src/main/jni/lib1.cpp"] qbs.targetPlatform: "android" + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "stlport_shared" cpp.useRPaths: false } @@ -17,6 +18,7 @@ Project { name: "lib2" files: ["src/main/jni/lib2.cpp"] qbs.targetPlatform: "android" + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "stlport_shared" cpp.useRPaths: false } diff --git a/tests/auto/blackbox/testdata-android/teapot/teapot.qbs b/tests/auto/blackbox/testdata-android/teapot/teapot.qbs index 4a447b2cc..3e0210554 100644 --- a/tests/auto/blackbox/testdata-android/teapot/teapot.qbs +++ b/tests/auto/blackbox/testdata-android/teapot/teapot.qbs @@ -50,6 +50,7 @@ Project { files: ["*.cpp", "*.h"].concat( !File.exists(ndkHelperProbe.dir + "/gl3stub.cpp") ? ["gl3stub.c"] : []) } + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "gnustl_shared" cpp.cxxLanguageVersion: "c++11" @@ -115,6 +116,7 @@ Project { FileTagger { patterns: ["*.inl"]; fileTags: ["hpp"] } + Properties { condition: qbs.toolchain.contains("clang"); Android.ndk.appStl: "c++_shared" } Android.ndk.appStl: "gnustl_shared" cpp.cxxLanguageVersion: "c++11" cpp.dynamicLibraries: ["log", "android", "EGL", "GLESv2"] diff --git a/tests/auto/blackbox/tst_blackboxandroid.cpp b/tests/auto/blackbox/tst_blackboxandroid.cpp index 7ad008bdf..c0ffa5620 100644 --- a/tests/auto/blackbox/tst_blackboxandroid.cpp +++ b/tests/auto/blackbox/tst_blackboxandroid.cpp @@ -179,6 +179,10 @@ void TestBlackboxAndroid::android_data() .replace("armv5te", "armeabi") .replace("arm64", "arm64-v8a"); }); + const bool usesClang = p.value(QLatin1String("qbs.toolchainType")).toString() == "clang"; + const auto cxxLibPath = [usesClang](const QByteArray &oldcxxLib) { + return "lib/${ARCH}/" + (usesClang ? "libc++_shared.so" : oldcxxLib); + }; auto expandArchs = [] (const QByteArrayList &archs, const QByteArrayList &lst) { const QByteArray &archPlaceHolder = "${ARCH}"; @@ -208,7 +212,7 @@ void TestBlackboxAndroid::android_data() "assets/Shaders/ShaderPlain.fsh", "assets/Shaders/VS_ShaderPlain.vsh", "lib/${ARCH}/gdbserver", - "lib/${ARCH}/libgnustl_shared.so", + cxxLibPath("libgnustl_shared.so"), "lib/${ARCH}/libTeapotNativeActivity.so", "res/layout/widgets.xml"})); QTest::newRow("no native") @@ -238,21 +242,21 @@ void TestBlackboxAndroid::android_data() "lib/${ARCH}/gdbserver", "lib/${ARCH}/liblib1.so", "lib/${ARCH}/liblib2.so", - "lib/${ARCH}/libstlport_shared.so"})); + cxxLibPath("libstlport_shared.so")})); QByteArrayList expectedFiles1 = (commonFiles - + expandArchs(QByteArrayList{"mips", "x86"}, { + + expandArchs(QByteArrayList{"armeabi-v7a", "x86"}, { "lib/${ARCH}/gdbserver", "lib/${ARCH}/libp1lib1.so", - "lib/${ARCH}/libstlport_shared.so"}) + cxxLibPath("libstlport_shared.so")}) + expandArchs(QByteArrayList{archs}, { "lib/${ARCH}/gdbserver", "lib/${ARCH}/libp1lib2.so", - "lib/${ARCH}/libstlport_shared.so"})).toSet().toList(); + cxxLibPath("libstlport_shared.so")})).toSet().toList(); QByteArrayList expectedFiles2 = commonFiles + expandArchs(archs, { "lib/${ARCH}/gdbserver", "lib/${ARCH}/libp2lib1.so", "lib/${ARCH}/libp2lib2.so", - "lib/${ARCH}/libstlport_shared.so"}); + cxxLibPath("libstlport_shared.so")}); expectedFiles2.removeOne("resources.arsc"); QTest::newRow("multiple apks") << "multiple-apks-per-project" -- cgit v1.2.3