From b42cb1c6f2e4af13288615624c0bb65a57289f0b Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 5 Jul 2023 13:52:37 -0700 Subject: [PATCH] emscripten: Add JS library dependencies using EM_JS_DEPS macro See https://github.com/emscripten-core/emscripten/pull/19780 (cherry picked from commit 042243471fb7ecf6ba5e53f0ba35e825a8bb066a) --- .github/workflows/emscripten.yml | 2 +- docs/README-emscripten.md | 2 +- src/audio/emscripten/SDL_emscriptenaudio.c | 3 +++ src/misc/emscripten/SDL_sysurl.c | 8 +++----- src/video/emscripten/SDL_emscriptenmouse.c | 2 ++ 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index ba94be10ce..66b744d38a 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v3 - uses: mymindstorm/setup-emsdk@v10 with: - version: 2.0.32 + version: 3.1.35 - name: Install ninja run: | sudo apt-get -y update diff --git a/docs/README-emscripten.md b/docs/README-emscripten.md index 8fa7ca6343..5c56984e6d 100644 --- a/docs/README-emscripten.md +++ b/docs/README-emscripten.md @@ -38,7 +38,7 @@ for some Javascript code to steal for this approach. ## Building SDL/emscripten -SDL currently requires at least Emscripten 2.0.32 to build. Newer versions +SDL currently requires at least Emscripten 3.1.35 to build. Newer versions are likely to work, as well. diff --git a/src/audio/emscripten/SDL_emscriptenaudio.c b/src/audio/emscripten/SDL_emscriptenaudio.c index d64ca71fbd..cdb4308f4c 100644 --- a/src/audio/emscripten/SDL_emscriptenaudio.c +++ b/src/audio/emscripten/SDL_emscriptenaudio.c @@ -196,6 +196,9 @@ static void EMSCRIPTENAUDIO_CloseDevice(SDL_AudioDevice *_this) #endif } + +EM_JS_DEPS(sdlaudio, "$autoResumeAudioContext,$dynCall"); + static int EMSCRIPTENAUDIO_OpenDevice(SDL_AudioDevice *_this, const char *devname) { SDL_AudioFormat test_format; diff --git a/src/misc/emscripten/SDL_sysurl.c b/src/misc/emscripten/SDL_sysurl.c index 93a78b2abd..8926a929cf 100644 --- a/src/misc/emscripten/SDL_sysurl.c +++ b/src/misc/emscripten/SDL_sysurl.c @@ -24,12 +24,10 @@ #include +EM_JS_DEPS(sdlsysurl, "$UTF8ToString"); + int SDL_SYS_OpenURL(const char *url) { - EM_ASM({ - window.open(UTF8ToString($0), "_blank"); - }, - url); - + EM_ASM(window.open(UTF8ToString($0), "_blank"), url); return 0; } diff --git a/src/video/emscripten/SDL_emscriptenmouse.c b/src/video/emscripten/SDL_emscriptenmouse.c index 7c3be34095..0cc3ec41c1 100644 --- a/src/video/emscripten/SDL_emscriptenmouse.c +++ b/src/video/emscripten/SDL_emscriptenmouse.c @@ -60,6 +60,8 @@ static SDL_Cursor *Emscripten_CreateDefaultCursor() return Emscripten_CreateCursorFromString("default", SDL_FALSE); } +EM_JS_DEPS(sdlmouse, "$stringToUTF8,$UTF8ToString"); + static SDL_Cursor *Emscripten_CreateCursor(SDL_Surface *surface, int hot_x, int hot_y) { const char *cursor_url = NULL;