aboutsummaryrefslogtreecommitdiff
path: root/cmake/platforms
diff options
context:
space:
mode:
authorBen Harris <bjh21@bjh21.me.uk>2022-12-09 13:56:12 +0000
committerBen Harris <bjh21@bjh21.me.uk>2023-01-19 20:34:48 +0000
commit9d7b044c01680e408094d3bae82f622ae8a5b48b (patch)
tree60ff57c078be6ac247fe1e18d007ed955ad9fb1e /cmake/platforms
parent420663d47790a7e34a1662d679a0c00efdb5b7e5 (diff)
downloadpuzzles-9d7b044c01680e408094d3bae82f622ae8a5b48b.zip
puzzles-9d7b044c01680e408094d3bae82f622ae8a5b48b.tar.gz
puzzles-9d7b044c01680e408094d3bae82f622ae8a5b48b.tar.bz2
puzzles-9d7b044c01680e408094d3bae82f622ae8a5b48b.tar.xz
js: Simpler and more robust startup procedure
Previously, we initialised all of the JavaScript event handlers as soon at the DOM was loaded, and then called main() ourselves once the Emscripten runtime was ready. This was slightly dangerous since it depended on none of those event handlers' being called before main(). In practice this was difficult because most of the elements the event handlers were attached to were invisible, but it did limit what event handlers could safely be used. Now, the event handlers are initialised from main(). This makes things work in a sufficiently conventional way that we can just let the Emscripten run-time call main() in its usual way, rather than involving ourselves in the minutiae of Emscripten's startup.
Diffstat (limited to 'cmake/platforms')
-rw-r--r--cmake/platforms/emscripten.cmake3
1 files changed, 1 insertions, 2 deletions
diff --git a/cmake/platforms/emscripten.cmake b/cmake/platforms/emscripten.cmake
index 3cbcab4..70aa5c9 100644
--- a/cmake/platforms/emscripten.cmake
+++ b/cmake/platforms/emscripten.cmake
@@ -42,7 +42,7 @@ 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]' \
+-s EXTRA_EXPORTED_RUNTIME_METHODS='[cwrap]' \
-s STRICT_JS=1")
if(WASM)
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -s WASM=1")
@@ -63,7 +63,6 @@ endfunction()
function(set_platform_puzzle_target_properties NAME TARGET)
em_link_pre_js(${TARGET} ${CMAKE_SOURCE_DIR}/emccpre.js)
em_link_js_library(${TARGET} ${CMAKE_SOURCE_DIR}/emcclib.js)
- em_link_post_js(${TARGET} ${CMAKE_SOURCE_DIR}/emccpost.js)
endfunction()
function(build_platform_extras)