From 7ec869a6d4c37e061b690383eeeb78c8940093d5 Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 21 Mar 2026 18:51:53 +0100 Subject: [PATCH] afegit BUILDING.md --- BUILDING.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 BUILDING.md diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 0000000..c25c75e --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,78 @@ +# Compilar JailDoctor's Dilemma + +## Linux (Debian/Ubuntu) + +Instal·la les dependències: + +```bash +sudo apt install cmake make g++ xxd glslang-tools glslc +``` + +Per a SDL3, instal·la el paquet de desenvolupament si està disponible al teu repositori: + +```bash +sudo apt install libsdl3-dev +``` + +Si `libsdl3-dev` no està als repos (SDL3 és recent i pot no estar a Debian stable), compila'l des del codi font: + +```bash +git clone https://github.com/libsdl-org/SDL.git --branch release-3.x --depth 1 +cd SDL && cmake -B build && cmake --build build && sudo cmake --install build +``` + +Compila el joc: + +```bash +cmake -B build +cmake --build build +``` + +--- + +## Windows (MinGW via WinLibs) + +1. Instal·la [WinLibs](https://winlibs.com/) (MinGW-w64 amb GCC) +2. Instal·la [CMake](https://cmake.org/download/) +3. Descarrega les [biblioteques de desenvolupament de SDL3 per a MinGW](https://github.com/libsdl-org/SDL/releases) — copia les capçaleres a `include/` i els fitxers `.a` a `lib/` de MinGW +4. Instal·la el [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) — proporciona `glslc` per a la compilació dels shaders + +Compila el joc (des d'un terminal MinGW): + +```bash +cmake -B build -G "MinGW Makefiles" +cmake --build build +``` + +--- + +## macOS + +Instal·la les dependències amb [Homebrew](https://brew.sh): + +```bash +brew install cmake sdl3 glslang +``` + +Compila el joc: + +```bash +cmake -B build +cmake --build build +``` + +--- + +## Què fa la compilació + +`cmake --build build` ho gestiona tot en ordre: + +1. **Compila els shaders** — regenera `postfx_vert_spv.h` / `postfx_frag_spv.h` si els fitxers `.vert` o `.frag` han canviat (requereix `glslc`) +2. **Compila el joc** — només recompila els fitxers `.cpp` modificats +3. **Empaqueta els recursos** — regenera `resources.pack` des de `data/` si algun asset ha canviat + +Si `glslc` no està instal·lat, s'utilitzen les capçaleres de shaders precompilades (incloses al repositori). + +> **Nota:** El `file(GLOB_RECURSE)` sobre `data/` s'avalua en temps de configuració de CMake. Si **afegeixes un fitxer nou** a `data/`, executa `cmake -B build` de nou perquè CMake el detecte com a dependència. + +L'executable es genera a l'arrel del projecte: `./jaildoctors_dilemma`