Revision control

Copy as Markdown

# Copyright (C) 2026 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
cmake_minimum_required(VERSION 3.16)
project(tst_androidtestrunner LANGUAGES CXX)
find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST)
endif()
qt_internal_get_host_info_var_prefix(_host_info_prefix)
set(_androidtestrunner_bin "${QT_HOST_PATH}/${${_host_info_prefix}_BINDIR}/androidtestrunner")
if(NOT EXISTS "${_androidtestrunner_bin}")
message(STATUS
"androidtestrunner not found on the host at '${_androidtestrunner_bin}'. "
"Skipping tst_androidtestrunner. Set QT_HOST_PATH to a Qt host install "
"that includes the androidtestrunner tool to enable it.")
return()
endif()
add_subdirectory(testapp)
_qt_internal_android_get_target_android_build_dir(_testapp_dir tst_androidtestrunner_testapp)
set(_testapp_apk "${_testapp_dir}/tst_androidtestrunner_testapp.apk")
set(_testapp_aab "${_testapp_dir}/tst_androidtestrunner_testapp.aab")
set(_testapp_package "org.qtproject.example.tst_androidtestrunner_testapp")
get_target_property(_testapp_wrapper tst_androidtestrunner_testapp
_qt_android_runner_wrapper_path)
set(_args
"--cmake" "${CMAKE_COMMAND}"
"--build-dir" "${CMAKE_BINARY_DIR}"
"--runner-bin" "${_androidtestrunner_bin}"
"--testapp-dir" "${_testapp_dir}"
"--testapp-apk" "${_testapp_apk}"
"--testapp-package" "${_testapp_package}"
)
if(_testapp_wrapper)
list(APPEND _args "--testapp-wrapper" "${_testapp_wrapper}")
endif()
if(QT_ANDROID_GRADLE_MULTI_MODULE AND EXISTS "${Bundletool_EXECUTABLE}")
list(APPEND _args "--bundletool" "${Bundletool_EXECUTABLE}")
list(APPEND _args "--testapp-aab" "${_testapp_aab}")
endif()
qt_internal_create_test_script(
NAME tst_androidtestrunner
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tst_androidtestrunner.py"
ARGS ${_args}
OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/tst_androidtestrunnerWrapper$<CONFIG>.cmake"
)