From 9fab958148ecf244608d712461da28a86f308d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wierci=C5=84ski?= Date: Wed, 20 Nov 2024 10:31:22 +0100 Subject: [PATCH] wasm: Stop configuration if Emscripten versions don't match MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Emscripten compiler toolchain does not guarantee ABI stability. Hence, it does not make sense to build Qt with one version of compiler, and then build the Qt application with other one. Treat it as an error if there is mismatch between Emscripten version used for building Qt and version used for building application. Change-Id: Ia720da25ecbd048a009d0bf1927ba1bc1fa85fda Reviewed-by: Morten Johan Sørvig Reviewed-by: Ivan Tkachenko --- cmake/QtPublicWasmToolchainHelpers.cmake | 10 ++++++---- mkspecs/features/wasm/emcc_ver.prf | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cmake/QtPublicWasmToolchainHelpers.cmake b/cmake/QtPublicWasmToolchainHelpers.cmake index 2b93284cda8..ea2a65bade3 100644 --- a/cmake/QtPublicWasmToolchainHelpers.cmake +++ b/cmake/QtPublicWasmToolchainHelpers.cmake @@ -98,9 +98,11 @@ function(_qt_test_emscripten_version) __qt_internal_get_qt_build_emsdk_version(qt_build_emcc_version) if(NOT "${qt_build_emcc_version}" STREQUAL "" AND NOT "${qt_build_emcc_version}" STREQUAL "${current_emsdk_ver}") - message("Qt Wasm built with Emscripten version: ${qt_build_emcc_version}") - message("You are using Emscripten version: ${current_emsdk_ver}") - message("The recommended version of Emscripten for this Qt is: ${_recommended_emver}") - message("This may not work correctly") + message(FATAL_ERROR + "Qt Wasm was built with Emscripten version: ${qt_build_emcc_version}\n" + "You are using Emscripten version: ${current_emsdk_ver}\n" + "The recommended version of Emscripten for this Qt is: ${_recommended_emver}\n" + "Stopping configuration due to mismatch of Emscripten versions." + ) endif() endfunction() diff --git a/mkspecs/features/wasm/emcc_ver.prf b/mkspecs/features/wasm/emcc_ver.prf index 340d4f29e36..b394ea1f518 100644 --- a/mkspecs/features/wasm/emcc_ver.prf +++ b/mkspecs/features/wasm/emcc_ver.prf @@ -19,7 +19,7 @@ defineTest(qtConfTest_emccVersion) { } contains(TEMPLATE, .*app) { !equals(QT_EMCC_VERSION, $$EMCC_VERSION) { - warning("This Qt was built with Emscripten version $${QT_EMCC_VERSION}. You have $${EMCC_VERSION}. The difference may cause issues.") + error("This Qt was built with Emscripten version $${QT_EMCC_VERSION}. You have $${EMCC_VERSION}. Stopping configuration due to mismatch of Emscripten versions.") } } }