From 6aaedb813fa11ba0679c3051bc2eb28646b9506c Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 30 Aug 2025 16:53:58 -0700 Subject: Update to SDL3 --- src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md | 50 +++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md (limited to 'src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md') diff --git a/src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md b/src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md new file mode 100644 index 0000000..a0541c8 --- /dev/null +++ b/src/contrib/SDL-3.2.20/docs/INTRO-emscripten.md @@ -0,0 +1,50 @@ + +# Introduction to SDL with Emscripten + +The easiest way to use SDL is to include it as a subproject in your project. + +We'll start by creating a simple project to build and run [hello.c](hello.c) + +First, you should have the Emscripten SDK installed from: + +https://emscripten.org/docs/getting_started/downloads.html + +Create the file CMakeLists.txt +```cmake +cmake_minimum_required(VERSION 3.16) +project(hello) + +# set the output directory for built objects. +# This makes sure that the dynamic library goes into the build directory automatically. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$") + +# This assumes the SDL source is available in vendored/SDL +add_subdirectory(vendored/SDL EXCLUDE_FROM_ALL) + +# on Web targets, we need CMake to generate a HTML webpage. +if(EMSCRIPTEN) + set(CMAKE_EXECUTABLE_SUFFIX ".html" CACHE INTERNAL "") +endif() + +# Create your game executable target as usual +add_executable(hello WIN32 hello.c) + +# Link to the actual SDL3 library. +target_link_libraries(hello PRIVATE SDL3::SDL3) +``` + +Build: +```sh +emcmake cmake -S . -B build +cd build +emmake make +``` + +You can now run your app by pointing a webserver at your build directory and connecting a web browser to it, opening hello.html + +A more complete example is available at: + +https://github.com/Ravbug/sdl3-sample + +Additional information and troubleshooting is available in [README-emscripten.md](README-emscripten.md) -- cgit v1.2.3