diff options
author | 2021-12-22 20:16:57 +0000 | |
---|---|---|
committer | 2021-12-23 02:13:53 +0000 | |
commit | 3fd7f8ac576a9e40fcbc76184882bdf98d403537 (patch) | |
tree | 4bc5dce0e4a012b8f4d0a4e308951d3502d837e0 /scripts/genie.lua | |
parent | 5d2c264ebbbcbb30a859e3c016c07f392bf23a11 (diff) |
Fix build with newer versions of Emscripten; minimum supported version is now 2.0.25.
Diffstat (limited to 'scripts/genie.lua')
-rw-r--r-- | scripts/genie.lua | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/scripts/genie.lua b/scripts/genie.lua index b2d3d475533..a42b488a38c 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -1155,13 +1155,54 @@ configuration { "asmjs" } } buildoptions_cpp { "-std=c++17", - "-s DISABLE_EXCEPTION_CATCHING=2", - "-s EXCEPTION_CATCHING_WHITELIST=\"['_ZN15running_machine17start_all_devicesEv','_ZN12cli_frontend7executeEiPPc','_ZN8chd_file11open_commonEb','_ZN8chd_file13read_metadataEjjRNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE','_ZN8chd_file13read_metadataEjjRNSt3__26vectorIhNS0_9allocatorIhEEEE','_ZNK19netlist_mame_device19base_validity_checkER16validity_checker']\"", + "-s EXCEPTION_CATCHING_ALLOWED=\"['_ZN15running_machine17start_all_devicesEv','_ZN12cli_frontend7executeEiPPc','_ZN8chd_file11open_commonEb','_ZN8chd_file13read_metadataEjjRNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE','_ZN8chd_file13read_metadataEjjRNSt3__26vectorIhNS0_9allocatorIhEEEE','_ZNK19netlist_mame_device19base_validity_checkER16validity_checker']\"", } linkoptions { "-Wl,--start-group", - "-r", - } + "-O" .. _OPTIONS["OPTIMIZE"], + "-s USE_SDL=2", + "-s USE_SDL_TTF=2", + "--memory-init-file 0", + "-s EXPORTED_FUNCTIONS=\"['_main', '_malloc', '__ZN15running_machine30emscripten_get_running_machineEv', '__ZN15running_machine17emscripten_get_uiEv', '__ZN15running_machine20emscripten_get_soundEv', '__ZN15mame_ui_manager12set_show_fpsEb', '__ZNK15mame_ui_manager8show_fpsEv', '__ZN13sound_manager4muteEbh', '_SDL_PauseAudio', '_SDL_SendKeyboardKey', '__ZN15running_machine15emscripten_saveEPKc', '__ZN15running_machine15emscripten_loadEPKc', '__ZN15running_machine21emscripten_hard_resetEv', '__ZN15running_machine21emscripten_soft_resetEv', '__ZN15running_machine15emscripten_exitEv']\"", + "-s EXPORTED_RUNTIME_METHODS=\"['cwrap']\"", + "-s ERROR_ON_UNDEFINED_SYMBOLS=0", + "-s USE_WEBGL2=1", + "-s LEGACY_GL_EMULATION=1", + "-s GL_UNSAFE_OPTS=0", + "--pre-js " .. _MAKE.esc(MAME_DIR) .. "src/osd/modules/sound/js_sound.js", + "--post-js " .. _MAKE.esc(MAME_DIR) .. "scripts/resources/emscripten/emscripten_post.js", + "--embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/chains@bgfx/chains", + "--embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/effects@bgfx/effects", + "--embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/shaders/essl@bgfx/shaders/essl", + "--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/bgfx@artwork/bgfx", + "--embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/slot-mask.png@artwork/slot-mask.png", + } + if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then + linkoptions { + "-g" .. _OPTIONS["SYMLEVEL"], + "-s DEMANGLE_SUPPORT=1", + } + end + if _OPTIONS["WEBASSEMBLY"] then + linkoptions { + "-s WASM=" .. _OPTIONS["WEBASSEMBLY"], + } + else + linkoptions { + "-s WASM=1", + } + end + if _OPTIONS["WEBASSEMBLY"]~=nil and _OPTIONS["WEBASSEMBLY"]=="0" then + -- define a fixed memory size because allowing memory growth disables asm.js optimizations + linkoptions { + "-s ALLOW_MEMORY_GROWTH=0", + "-s TOTAL_MEMORY=268435456", + } + else + linkoptions { + "-s ALLOW_MEMORY_GROWTH=1", + } + end archivesplit_size "20" configuration { "android*" } |