docs(compile): adopta layout local_files/ + enrichers/ + runtime/ Python
Actualiza /compile para que el deploy a Desktop/apps/<app>/ siga la convencion local_files/ del framework: - Copia .exe + ttfs + dlls junto al exe (read-only). - Copia <app_dir>/enrichers/ si existe (excluyendo pycache). - Copia <app_dir>/runtime/ si app.md declara python_runtime: true. Regenera el runtime via tools/freeze_python_runtime.sh windows cuando app.md es mas nuevo que runtime/.lock. - NUNCA toca local_files/ del destino — contiene estado del usuario (DBs, ini, proyectos) que NO se debe perder al recompilar. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -101,7 +101,18 @@ Si el target no existe en CMake (porque la app no esta registrada en `cpp/CMakeL
|
|||||||
|
|
||||||
### 4. Copiar a `/mnt/c/Users/lucas/Desktop/apps/<APP>/`
|
### 4. Copiar a `/mnt/c/Users/lucas/Desktop/apps/<APP>/`
|
||||||
|
|
||||||
Replica el flujo documentado en memoria (`feedback_no_adminlocal.md`): el `.exe` + las TTFs de fuentes que el shell ImGui necesita. NO usar `AdminLocal`.
|
Layout estandar (convencion `local_files/`, ver `cpp_apps.md` §7):
|
||||||
|
|
||||||
|
```
|
||||||
|
Desktop/apps/<APP>/
|
||||||
|
├── <APP>.exe ← binario
|
||||||
|
├── *.ttf, *.dll ← fuentes + DLLs (junto al exe)
|
||||||
|
├── assets/ ← opcional, copiada del build
|
||||||
|
├── enrichers/ ← opcional, si <app_dir>/enrichers existe
|
||||||
|
├── runtime/ ← opcional, si app.md tiene python_runtime: true
|
||||||
|
└── local_files/ ← creado por la app al primer arranque
|
||||||
|
NUNCA borrar al recompilar
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
DEST="/mnt/c/Users/lucas/Desktop/apps/$APP_ARG"
|
DEST="/mnt/c/Users/lucas/Desktop/apps/$APP_ARG"
|
||||||
@@ -113,19 +124,38 @@ if [ ! -f "$EXE_SRC" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 1. Binario + TTFs + DLLs (junto al exe del build, copiados por add_imgui_app).
|
||||||
cp -v "$EXE_SRC" "$DEST/"
|
cp -v "$EXE_SRC" "$DEST/"
|
||||||
|
find "$BUILD_WIN/apps/$APP_ARG" -maxdepth 1 -type f \
|
||||||
|
\( -name '*.ttf' -o -name '*.dll' \) -exec cp -v {} "$DEST/" \;
|
||||||
|
|
||||||
# TTFs (estan junto al exe tras el build, copiados por add_imgui_app)
|
# 2. assets/ del build (opcional).
|
||||||
for ttf in "$BUILD_WIN/apps/$APP_ARG"/*.ttf; do
|
|
||||||
[ -f "$ttf" ] && cp -v "$ttf" "$DEST/"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Assets opcionales (carpeta assets/ junto al exe del build)
|
|
||||||
if [ -d "$BUILD_WIN/apps/$APP_ARG/assets" ]; then
|
if [ -d "$BUILD_WIN/apps/$APP_ARG/assets" ]; then
|
||||||
rsync -a --delete "$BUILD_WIN/apps/$APP_ARG/assets/" "$DEST/assets/"
|
rsync -a --delete "$BUILD_WIN/apps/$APP_ARG/assets/" "$DEST/assets/"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 3. enrichers/ del app_dir (opcional). Excluye __pycache__ + .pyc.
|
||||||
|
if [ -d "$APP_DIR/enrichers" ]; then
|
||||||
|
rsync -a --delete --exclude '__pycache__' --exclude '*.pyc' \
|
||||||
|
"$APP_DIR/enrichers/" "$DEST/enrichers/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. runtime/ Python embebido (si la app lo declara).
|
||||||
|
# Lee `python_runtime: true` del frontmatter de app.md.
|
||||||
|
if grep -q '^python_runtime:[[:space:]]*true' "$APP_DIR/app.md" 2>/dev/null; then
|
||||||
|
if [ ! -d "$APP_DIR/runtime/python" ] || \
|
||||||
|
[ "$APP_DIR/app.md" -nt "$APP_DIR/runtime/.lock" ]; then
|
||||||
|
echo "[freeze] regenerando runtime Python (Windows) para $APP_ARG"
|
||||||
|
"$APP_DIR/tools/freeze_python_runtime.sh" "$APP_DIR" windows
|
||||||
|
fi
|
||||||
|
rsync -a --delete --exclude '__pycache__' --exclude '*.pyc' \
|
||||||
|
"$APP_DIR/runtime/" "$DEST/runtime/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 5. NO TOCAR local_files/. Si existe en $DEST, preservar — contiene
|
||||||
|
# estado del usuario (DBs, settings, layouts ImGui, proyectos).
|
||||||
echo "OK: $APP_ARG -> $DEST"
|
echo "OK: $APP_ARG -> $DEST"
|
||||||
|
[ -d "$DEST/local_files" ] && echo " local_files/ preservado: $(du -sh "$DEST/local_files" | cut -f1)"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Compilar Android (solo si TARGETS contiene `android`)
|
### 5. Compilar Android (solo si TARGETS contiene `android`)
|
||||||
|
|||||||
Reference in New Issue
Block a user