diff --git a/cmake/QtExecutableHelpers.cmake b/cmake/QtExecutableHelpers.cmake index 704fc860eb5..ee5e7a1f163 100644 --- a/cmake/QtExecutableHelpers.cmake +++ b/cmake/QtExecutableHelpers.cmake @@ -39,11 +39,6 @@ function(qt_internal_add_executable name) PROPERTY EXCLUDE_FROM_ALL "$>") endif() - if(WASM) - qt_internal_wasm_add_finalizers("${name}") - _qt_internal_wasm_add_target_helpers("${name}") - endif() - if (arg_VERSION) if(arg_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+") # nothing to do @@ -143,6 +138,11 @@ function(qt_internal_add_executable name) qt_internal_set_exceptions_flags("${name}" ${arg_EXCEPTIONS}) + if(WASM) + qt_internal_wasm_add_finalizers("${name}") + _qt_internal_wasm_add_target_helpers("${name}") + endif() + # Check if target needs to be excluded from all target. Also affects qt_install. # Set by qt_exclude_tool_directories_from_default_target. set(exclude_from_all FALSE) diff --git a/src/corelib/Qt6WasmMacros.cmake b/src/corelib/Qt6WasmMacros.cmake index ff229f3429a..c3e9613206d 100644 --- a/src/corelib/Qt6WasmMacros.cmake +++ b/src/corelib/Qt6WasmMacros.cmake @@ -14,12 +14,25 @@ function(_qt_internal_wasm_add_target_helpers target) set(WASM_BUILD_DIR "${QT_BUILD_DIR}") endif() - configure_file("${WASM_BUILD_DIR}/plugins/platforms/wasm_shell.html" - "${target}.html") - configure_file("${WASM_BUILD_DIR}/plugins/platforms/qtloader.js" - qtloader.js COPYONLY) - configure_file("${WASM_BUILD_DIR}/plugins/platforms/qtlogo.svg" - qtlogo.svg COPYONLY) + _qt_internal_test_batch_target_name(test_batch_target_name) + if(QT_BUILD_TESTS_BATCHED AND target STREQUAL test_batch_target_name) + get_target_property(batch_output_dir ${target} RUNTIME_OUTPUT_DIRECTORY) + configure_file("${WASM_BUILD_DIR}/libexec/batchedtestrunner.html" + "${batch_output_dir}/batchedtestrunner.html" COPYONLY) + configure_file("${WASM_BUILD_DIR}/libexec/batchedtestrunner.js" + "${batch_output_dir}/batchedtestrunner.js" COPYONLY) + configure_file("${WASM_BUILD_DIR}/libexec/qwasmjsruntime.js" + "${batch_output_dir}/qwasmjsruntime.js" COPYONLY) + configure_file("${WASM_BUILD_DIR}/libexec/util.js" + "${batch_output_dir}/util.js" COPYONLY) + else() + configure_file("${WASM_BUILD_DIR}/plugins/platforms/wasm_shell.html" + "${target}.html") + configure_file("${WASM_BUILD_DIR}/plugins/platforms/qtloader.js" + qtloader.js COPYONLY) + configure_file("${WASM_BUILD_DIR}/plugins/platforms/qtlogo.svg" + qtlogo.svg COPYONLY) + endif() if(QT_FEATURE_thread) set(POOL_SIZE 4) diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt index 1d5dc71460a..4f74f0b0519 100644 --- a/src/testlib/CMakeLists.txt +++ b/src/testlib/CMakeLists.txt @@ -164,3 +164,19 @@ qt_internal_apply_testlib_coverage_options(Test) if(QT_FEATURE_private_tests) add_subdirectory(doc/snippets/code) endif() + +if(QT_FEATURE_batch_test_support AND WASM) + set(wasm_support_libexec_files) + list(APPEND wasm_support_libexec_files + ${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/batchedtestrunner.html) + list(APPEND wasm_support_libexec_files + ${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/batchedtestrunner.js) + list(APPEND wasm_support_libexec_files + ${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/qwasmjsruntime.js) + list(APPEND wasm_support_libexec_files + ${QtBase_SOURCE_DIR}/util/wasm/batchedtestrunner/util.js) + + qt_path_join(libexec_dir ${QT_INSTALL_DIR} ${INSTALL_LIBEXECDIR}) + qt_copy_or_install(FILES ${wasm_support_libexec_files} + DESTINATION "${libexec_dir}") +endif()