# /compile — Compila app C++ y la copia al escritorio de Windows Wrapper sobre el pipeline `compile_cpp_app_bash_pipelines`. Toda la lógica vive en el registry (resolver app desde CWD/arg, cross-compile MinGW, copiar exe + DLLs + assets/ + enrichers/ + runtime/ a `/mnt/c/Users/lucas/Desktop/apps//`, taskkill previo, preservar `local_files/`). ```bash cd /home/lucas/fn_registry ./fn run compile_cpp_app "$ARGUMENTS" ``` ## Argumento `$ARGUMENTS` — opcional. Nombre de app (ej: `chart_demo`). - Sin argumento: deduce desde `pwd` si estás dentro de `cpp/apps//` o `projects/*/apps//`. - Si no se puede deducir y no se pasa argumento, el pipeline lista las apps disponibles en stderr y aborta. ## Qué hace el pipeline 1. `resolve_cpp_app_dir_bash_infra` — resuelve `` y `` desde arg o CWD. 2. Verifica `CMakeLists.txt` en el dir resuelto. 3. `build_cpp_windows_bash_infra ` — cross-compila el target específico con `cpp/build/windows/` (configura toolchain `mingw-w64.cmake` la primera vez). 4. `deploy_cpp_exe_to_windows_bash_infra `: - `taskkill.exe /IM .exe /F` (pre-autorizado). - Copia `.exe` + DLLs al top-level de `Desktop/apps//`. - rsync `cpp/build/windows/apps//assets/` → `Desktop/apps//assets/`. - rsync `/enrichers/` → `assets/enrichers/` si existe. - Si `app.md` declara `python_runtime: true`, regenera `runtime/` con `tools/freeze_python_runtime.sh` y rsync a `assets/runtime/`. - Copia `gx-cli`/`gx-cli.exe` si existen. - **NUNCA** toca `local_files/` (estado del usuario). 5. Imprime `ls -lh` del `.exe` final. ## Notas - Solo target Windows hoy. Android / Linux quedan fuera (Linux ya lo da `cpp/build/`). - Variables override-ables: `BUILD_WIN`, `WIN_DESKTOP_APPS`, `FN_REGISTRY_ROOT`. - Si la app no está registrada en `cpp/CMakeLists.txt`, `cmake --build --target ` falla. Registrar siguiendo `.claude/rules/cpp_apps.md` §5. - Para tocar la lógica: editar `bash/functions/{infra,pipelines}/{resolve_cpp_app_dir,deploy_cpp_exe_to_windows,compile_cpp_app}.sh`, no este wrapper.