Compilat onefile amb Nuitka (app.py + zstandard) i rutes en mode onefile
This commit is contained in:
@@ -64,10 +64,33 @@ Una entrada `[[game]]` por juego. Campos:
|
||||
| `info_url` | no | API Gitea del repo (def. derivada de `clone_url`) |
|
||||
| `icon_rel` | no | ruta del icono dentro del repo (def. `release/icons/icon.png`) |
|
||||
|
||||
## Compilar a binario (Nuitka)
|
||||
## Compilar a binario (Nuitka, onefile)
|
||||
|
||||
`build.sh` lo hace todo: crea el `.venv`, instala dependencias (PySide6 + Nuitka +
|
||||
zstandard) y compila un único ejecutable comprimido, empaquetándolo en
|
||||
`dist/jlauncher-v<versión>-<os>-<arch>.tar.gz` junto a `games.toml`.
|
||||
|
||||
```bash
|
||||
pip install nuitka PySide6
|
||||
./build.sh
|
||||
# binario en dist/jlauncher.dist/jlauncher
|
||||
# binario: dist/jlauncher (+ dist/games.toml)
|
||||
```
|
||||
|
||||
El binario crea `jlauncher_data/` y `settings.json` **junto a sí mismo** (resuelto vía
|
||||
`NUITKA_ONEFILE_DIRECTORY`). El punto de entrada para empaquetar es `app.py` (desde
|
||||
fuente se ejecuta con `python -m jlauncher`).
|
||||
|
||||
### Prerequisitos del sistema (no los instala el script)
|
||||
|
||||
- **Python 3.11+** (usa `tomllib`).
|
||||
- Un **compilador C**:
|
||||
- Linux: `gcc` y `patchelf` (p. ej. `apt install build-essential patchelf python3-dev`).
|
||||
- macOS: **Xcode Command Line Tools** (`xcode-select --install`); aquí *no* hace falta
|
||||
patchelf (Nuitka usa `install_name_tool`).
|
||||
- `git` en el PATH.
|
||||
|
||||
### macOS
|
||||
|
||||
Compila en el propio Mac (Nuitka no compila cruzado): `./build.sh` genera
|
||||
`jlauncher-v…-darwin-arm64.tar.gz`. Como el binario no va firmado, la primera vez quizá
|
||||
debas hacer `xattr -dr com.apple.quarantine jlauncher` o abrirlo con clic derecho → Abrir.
|
||||
Lánzalo desde terminal (`./jlauncher`).
|
||||
|
||||
Reference in New Issue
Block a user