Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ravbug/sdl3-sample
Minimal HowTo for building and using SDL3 on a variety of platforms, including mobile and web
https://github.com/ravbug/sdl3-sample
android cmake emscripten game-development ios linux macos sdl sdl3 tvos uwp visionos webassembly
Last synced: 5 days ago
JSON representation
Minimal HowTo for building and using SDL3 on a variety of platforms, including mobile and web
- Host: GitHub
- URL: https://github.com/ravbug/sdl3-sample
- Owner: Ravbug
- Created: 2023-05-14T02:50:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-27T23:01:47.000Z (25 days ago)
- Last Synced: 2024-12-07T03:05:58.447Z (16 days ago)
- Topics: android, cmake, emscripten, game-development, ios, linux, macos, sdl, sdl3, tvos, uwp, visionos, webassembly
- Language: CMake
- Homepage: https://www.ravbug.com/sdl3-sample/
- Size: 146 KB
- Stars: 89
- Watchers: 2
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-sdl - SDL3 App from Source Minimal Example
README
## SDL3 App From Source Minimal Example
This is a minimal example for building and using SDL3 from source
using C++ and CMake. It also demonstrates setting up things like macOS/iOS
bundles.
See [src/main.cpp](src/main.cpp) for the code.### Building And Running
Are you a complete beginner? If so, read [this](https://github.com/Ravbug/sdl3-sample/wiki/Setting-up-your-computer)!
Otherwise, install CMake and your favorite compiler, and follow the commands below:
```sh
# 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/`](config/). Then open the IDE project inside `build/`
(If you had CMake generate one) and run!## Supported Platforms
I have tested the following:
| Platform | Architecture | Generator |
| --- | --- | --- |
| macOS | x86_64, arm64 | Xcode |
| iOS | x86_64, arm64 | Xcode |
| tvOS | x86_64, arm64 | Xcode |
| visionOS* | arm64 | Xcode |
| Windows | x86_64, arm64 | Visual Studio |
| Linux | x86_64, arm64 | Ninja, Make |
| Web* | wasm | Ninja, Make |
| Android* | x86, x64, arm, arm64 | Ninja via Android Studio |*See further instructions in [`config/`](config/)
Note: UWP support was [removed from SDL3](https://github.com/libsdl-org/SDL/pull/10731) during its development. For historical reasons, you can get a working UWP sample via this commit: [df270da](https://github.com/Ravbug/sdl3-sample/tree/df270daa8d6d48426e128e50c73357dfdf89afbf)
## Updating SDL
Just update the submodule:
```sh
cd SDL
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. Note that as of writing, SDL3 is
in development, so expect APIs to change.## Reporting issues
Is something not working? Create an Issue or send a Pull Request on this repository!