Two files, one double-click, full UCRT64 + GCC + SDL3 build environment on Windows 11. Includes the Release/Beta toggle and the SDL3 satellites.
Two files. Double-click RunMe.bat. Walk away. When you come back,
MSYS2, UCRT64, GCC, CMake, Ninja, SDL3, SDL3_ttf, SDL3_image, SDL3_mixer,
and SDL3_net are installed, both SDL3 Release and Beta are built from source,
and a demo has already been compiled and launched to prove the toolchain works.
winget if it is not already present.build_env.sh and splash.sh into it..bashrc that shows a one-time splash on first login, then prints the current SDL3 mode on every login after.build_env.sh runs pacman -Syu twice, installs the toolchain and all SDL3 packages, downloads the official SDL3 3.4.16 tarball, builds it into /ucrt64/local/sdl3/release, clones the SDL3 main branch and builds it into /ucrt64/local/sdl3/beta, compiles a demo that logs keyboard and mouse events and opens a clickable URL, and installs the toggle_build switcher.
Both SDL3 builds live side by side. A symlink named
/ucrt64/local/sdl3/active points at whichever one you are using.
Your compile command never changes — it always points at active.
toggle_build release # switch to SDL3 3.4.16
toggle_build beta # switch to git main
toggle_build ? # show current mode and path
winget install MSYS2.MSYS2)gcc, cmake, ninja, pkgconfgit, wget, tarmingw-w64-ucrt-x86_64-sdl3mingw-w64-ucrt-x86_64-sdl3-imagemingw-w64-ucrt-x86_64-sdl3-mixermingw-w64-ucrt-x86_64-sdl3-ttfmingw-w64-ucrt-x86_64-sdl3-netmain branch)gcc -o myapp.exe myapp.c \
-I/ucrt64/local/sdl3/active/include \
-L/ucrt64/local/sdl3/active/lib \
-lSDL3 -lSDL3_ttf -lshell32
The installer builds and runs a small SDL3_ttf demo. It opens an 800×400 window in the center of the display, renders four lines of text, logs every keyboard and mouse event to the terminal, and turns the URL line into a clickable, underlined link that opens your default browser.
/ucrt64/local/sdl3/demo/main.c/ucrt64/local/sdl3/demo/demo.exeThe first time you open MSYS2 UCRT64 after installation, a one-time splash prints the banner, command list, and paths. It then removes itself. Every login after that shows a single line:
SDL3 mode: release
Download SDL3_installs.zip →