README.md

January 23, 2025 ยท View on GitHub

SDL3 App From Source Minimal Example

This is a minimal example for building and using SDL3, SDL_Mixer, SDL_Image, and SDL_ttf_ from source using C++ and CMake. It also demonstrates setting up things like macOS/iOS bundles. See src/main.cpp for the code.

Building And Running

Are you a complete beginner? If so, read this! Otherwise, install CMake and your favorite compiler, and follow the commands below:

# You need to clone with submodules, otherwise SDL will not download.
git clone https://github.com/Ravbug/sdl3-sample --depth=1 --recurse-submodules
cd sdl3-sample
cmake -S . -B build

You can also use an init script inside config/. Then open the IDE project inside build/ (If you had CMake generate one) and run!

Supported Platforms

I have tested the following:

PlatformArchitectureGenerator
macOSx86_64, arm64Xcode
iOSx86_64, arm64Xcode
tvOSx86_64, arm64Xcode
visionOS*arm64Xcode
Windowsx86_64, arm64Visual Studio
Linuxx86_64, arm64Ninja, Make
Web*wasmNinja, Make
Android*x86, x64, arm, arm64Ninja via Android Studio

*See further instructions in config/

Note: UWP support was removed from SDL3 during its development. For historical reasons, you can get a working UWP sample via this commit: df270da

Updating SDL

Just update the submodule:

cd SDL
git pull
cd ..

cd SDL_ttf
git pull

You don't need to use a submodule, you can also copy the source in directly. This repository uses a submodule to keep its size to a minimum.

Reporting issues

Is something not working? Create an Issue or send a Pull Request on this repository!