Files
games/docs/development/004-SDL3_DESKTOP_PREREQUISITES.md

72 lines
2.2 KiB
Markdown

<!-- file: docs/development/004-SDL3_DESKTOP_PREREQUISITES.md -->
<!-- version: 2 -->
# Prérequis SDL3 Desktop
## Portée
Cette politique concerne le développement et les runners Desktop natifs basés sur SDL3.
Elle ne définit pas le packaging Android ni Web :
- Android utilisera son intégration SDL3/NDK/AAR dédiée ;
- Web utilisera la cible Emscripten/WASM dédiée ;
- la présence de SDL3 système sur le poste Desktop n'implique aucune dépendance runtime identique sur Android ou Web.
## Version Rust SDL3
La version canonique est déclarée au workspace sans feature globale :
```toml
[workspace.dependencies]
sdl3 = "^0.20"
```
La crate d'adaptation SDL3 Desktop active elle-même la méthode de liaison dont elle a besoin :
```toml
sdl3 = { workspace = true, features = ["use-pkg-config"] }
```
Cette séparation suit la règle générale du workspace : version commune à la racine, features au niveau de la crate consommatrice.
## Stratégie Desktop Linux
Le build Desktop recherche une installation SDL3 système avec `pkg-config`.
Cette stratégie évite le défaut rencontré avec le build vendored de la série `sdl3 0.16.x` / `sdl3-sys 0.5.12`, où CMake tentait d'ajouter un répertoire `test` absent du package source utilisé.
## Debian 13 / Trixie
Installer au besoin :
```bash
sudo apt update
sudo apt install pkg-config libsdl3-dev
```
Préflight :
```bash
pkg-config --modversion sdl3
pkg-config --cflags --libs sdl3
```
La machine de validation a fourni SDL `3.2.10`.
`sdl3-sys 0.7.x` annonce la compatibilité avec SDL `3.1.3` et versions ultérieures ; certaines API particulières peuvent toutefois nécessiter une version SDL plus récente. Les API minimales actuellement employées par le POC doivent donc rester vérifiées par compilation et smoke runtime.
## Portabilité future
Cette décision concerne le développement Desktop Linux et ne préjuge pas du packaging final.
Les options futures restent ouvertes :
- bundle SDL3 dans un package Desktop ;
- AppImage ou Flatpak ;
- package natif par distribution ;
- liaison statique si elle devient justifiée ;
- distribution Tauri distincte lorsqu'un shell Desktop riche est requis.
Toute évolution de cette stratégie doit être documentée avant modification des manifests.