diff --git a/tests/auto/corelib/plugin/CMakeLists.txt b/tests/auto/corelib/plugin/CMakeLists.txt index 14ce4c316da..e2ff4dc660a 100644 --- a/tests/auto/corelib/plugin/CMakeLists.txt +++ b/tests/auto/corelib/plugin/CMakeLists.txt @@ -10,7 +10,6 @@ if(QT_FEATURE_library AND NOT ANDROID) add_subdirectory(qpluginloader) add_subdirectory(qlibrary) endif() -# QTBUG-87438 # special case -if(QT_BUILD_SHARED_LIBS AND QT_FEATURE_library AND NOT ANDROID) +if(QT_BUILD_SHARED_LIBS AND QT_FEATURE_library) add_subdirectory(qplugin) endif() diff --git a/tests/auto/corelib/plugin/qplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt index 2c901eff44c..1713f8c2afd 100644 --- a/tests/auto/corelib/plugin/qplugin/CMakeLists.txt +++ b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt @@ -1,27 +1,41 @@ # Generated from qplugin.pro. add_subdirectory(invalidplugin) - -# special case begin add_subdirectory(debugplugin) add_subdirectory(releaseplugin) -# The contents below are generated from ./tst_qplugin.pro -# Collect test data -file(GLOB_RECURSE test_data_glob - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - plugins/*) -list(APPEND test_data ${test_data_glob}) - qt_internal_add_test(tst_qplugin SOURCES tst_qplugin.cpp LIBRARIES Qt::CorePrivate - TESTDATA ${test_data} ) +if(NOT ANDROID) + # Collect test data + file(GLOB_RECURSE test_data_glob + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} + plugins/*) + list(APPEND test_data ${test_data_glob}) + set_target_properties(tst_qplugin PROPERTIES TESTDATA "${test_data}") +else() + # On Android the plugins must be located in the libs subdir of the APK. + # Use QT_ANDROID_EXTRA_LIBS to achieve that. + set(plugins + invalidplugin + debugplugin + releaseplugin + ) + set(extra_libs) + foreach(plugin IN LISTS plugins) + list(APPEND extra_libs + "${CMAKE_CURRENT_BINARY_DIR}/plugins/lib${plugin}_${CMAKE_ANDROID_ARCH_ABI}.so") + endforeach() + set_target_properties(tst_qplugin PROPERTIES + QT_ANDROID_EXTRA_LIBS "${extra_libs}" + ) +endif() + target_compile_definitions(tst_qplugin PRIVATE CMAKE_BUILD=1) add_dependencies(tst_qplugin invalidplugin debugplugin releaseplugin) -# special case end diff --git a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp index 6db2a80abcf..569a84c51b1 100644 --- a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp +++ b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp @@ -54,8 +54,15 @@ private slots: }; tst_QPlugin::tst_QPlugin() - : dir(QFINDTESTDATA("plugins")) { + // On Android the plugins must be located in the APK's libs subdir +#ifndef Q_OS_ANDROID + dir = QFINDTESTDATA("plugins"); +#else + const QStringList paths = QCoreApplication::libraryPaths(); + if (!paths.isEmpty()) + dir = paths.first(); +#endif } void tst_QPlugin::initTestCase()