# 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)