ref: 8fa545c76c35dd7954220eb172a1783044794168
parent: f8b15bab6b2a8dd8309cdef3dc49ae3377cb997d
author: Simon Tatham <anakin@pobox.com>
date: Fri Apr 16 14:07:15 EDT 2021
Set ALLOW_MEMORY_GROWTH in the Emscripten build. How embarrassing. When I updated the Emscripten build to use WASM, a major reason I bothered to do it at all was that I'd heard that WASM was capable of reallocating its memory arena larger on the fly. Turns out that it _can_, but only if you specifically set the option in Emscripten to allow it. With this option set, I can finish a 25x25 Galaxies, where previously the game would crash part way through (and not even a very large part) with errors about memory growth in the Javascript console.
--- a/cmake/platforms/emscripten.cmake
+++ b/cmake/platforms/emscripten.cmake
@@ -30,6 +30,7 @@
list(TRANSFORM emcc_export_list APPEND \")
string(JOIN "," emcc_export_string ${emcc_export_list})
set(CMAKE_C_LINK_FLAGS "\
+-s ALLOW_MEMORY_GROWTH=1 \
-s EXPORTED_FUNCTIONS='[${emcc_export_string}]' \
-s EXTRA_EXPORTED_RUNTIME_METHODS='[cwrap,callMain]'")