From 29b17fa335388c9b93f70c29b2398cf2fee65785 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Thu, 12 Nov 2020 13:55:25 +0200 Subject: [PATCH] CMake: fix running Android tests Android *.so files need to CXX visibility to default after qt_set_common_target_properties() which was setting it to hidden. Also, pass the correct androidtestrunner arguments for cmake check target Fixes: QTBUG-88228 Change-Id: Ia29cdc9e65153c9669f3ec06f74a46f8fcd8c507 Reviewed-by: Alexandru Croitor --- cmake/QtExecutableHelpers.cmake | 14 ++++++++------ cmake/QtPlatformAndroid.cmake | 3 +-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/cmake/QtExecutableHelpers.cmake b/cmake/QtExecutableHelpers.cmake index 42bc05fb49d..29793d24fc5 100644 --- a/cmake/QtExecutableHelpers.cmake +++ b/cmake/QtExecutableHelpers.cmake @@ -24,12 +24,6 @@ function(qt_internal_add_executable name) qt_android_apply_arch_suffix("${name}") qt_android_generate_deployment_settings("${name}") qt_android_add_apk_target("${name}") - # On our qmake builds we don't compile the executables with - # visibility=hidden. Not having this flag set will cause the - # executable to have main() hidden and can then no longer be loaded - # through dlopen() - set_property(TARGET ${name} PROPERTY C_VISIBILITY_PRESET default) - set_property(TARGET ${name} PROPERTY CXX_VISIBILITY_PRESET default) else() add_executable("${name}" ${arg_EXE_FLAGS}) endif() @@ -77,6 +71,14 @@ function(qt_internal_add_executable name) endif() qt_set_common_target_properties(${name}) + if(ANDROID) + # On our qmake builds we don't compile the executables with + # visibility=hidden. Not having this flag set will cause the + # executable to have main() hidden and can then no longer be loaded + # through dlopen() + set_property(TARGET ${name} PROPERTY C_VISIBILITY_PRESET default) + set_property(TARGET ${name} PROPERTY CXX_VISIBILITY_PRESET default) + endif() qt_autogen_tools_initial_setup(${name}) qt_skip_warnings_are_errors_when_repo_unclean("${name}") diff --git a/cmake/QtPlatformAndroid.cmake b/cmake/QtPlatformAndroid.cmake index a038fdfb987..f9d1835dd34 100644 --- a/cmake/QtPlatformAndroid.cmake +++ b/cmake/QtPlatformAndroid.cmake @@ -140,9 +140,8 @@ function(qt_internal_android_add_test target) add_test(NAME "${target}" COMMAND "${test_runner}" - --androiddeployqt "${deployment_tool} --input ${deployment_file}" - --adb "${ANDROID_SDK_ROOT}/platform-tools/adb" --path "${apk_dir}" + --adb "${ANDROID_SDK_ROOT}/platform-tools/adb" --skip-install-root --make "${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target ${target}_make_apk" --apk "${apk_dir}/${target}.apk"