diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2022-08-24 17:57:54 +1000 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-09-01 03:48:16 +0000 |
commit | 78a0203ffaa4b0061e0d890ee7e67ae69e202733 (patch) | |
tree | 51e3b354370d39797bb6745b521d34b7d2ab4d3b /cmake/QtPublicWasmToolchainHelpers.cmake | |
parent | 233b95f70a56b4ae953c5f75b1ce226bb1bd6cf2 (diff) |
wasm: add Emscripten version check for apps
This will tell developers if they are using the wrong version which may
not build or might cause other issues.
Fixes: QTBUG-105922
Change-Id: Ic5c4549d5637182dce380e415f131e33a4da416f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
(cherry picked from commit b515fa56a3144289023dc9588c5f73283599e4d4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake/QtPublicWasmToolchainHelpers.cmake')
-rw-r--r-- | cmake/QtPublicWasmToolchainHelpers.cmake | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cmake/QtPublicWasmToolchainHelpers.cmake b/cmake/QtPublicWasmToolchainHelpers.cmake index ba217834bf..759c82e36c 100644 --- a/cmake/QtPublicWasmToolchainHelpers.cmake +++ b/cmake/QtPublicWasmToolchainHelpers.cmake @@ -69,3 +69,28 @@ function(__qt_internal_show_error_no_emscripten_toolchain_file_found_when_using_ "or provide a path to a valid emscripten installation via the EMSDK " "environment variable.") endfunction() + +function(__qt_internal_get_qt_build_emsdk_version out_var) + if(EXISTS "${QT6_INSTALL_PREFIX}/src/corelib/global/qconfig.h") + file(READ "${QT6_INSTALL_PREFIX}/src/corelib/global/qconfig.h" ver) + else() + file(READ "${QT6_INSTALL_PREFIX}/include/QtCore/qconfig.h" ver) + endif() + string(REGEX MATCH "#define QT_EMCC_VERSION.\"[0-9]+\\.[0-9]+\\.[0-9]+\"" emOutput ${ver}) + string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" build_emcc_version "${emOutput}") + set(${out_var} "${build_emcc_version}" PARENT_SCOPE) +endfunction() + +function(_qt_test_emscripten_version) + __qt_internal_get_emcc_recommended_version(_recommended_emver) + __qt_internal_get_emroot_path_suffix_from_emsdk_env(emroot_path) + __qt_internal_query_emsdk_version("${emroot_path}" TRUE current_emsdk_ver) + __qt_internal_get_qt_build_emsdk_version(qt_build_emcc_version) + + if(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") + endif() +endfunction() |