7913116a8e
- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.3 KiB
3.3 KiB
description
| description |
|---|
| Compila app del registry (C++ o Wails Go), copia el .exe a Desktop/apps/<app>/ y relanza en Windows. Wrapper sobre compile_cpp_app o compile_wails_app segun framework declarado en app.md. |
/compile — Compila app C++ o Wails y la copia al escritorio de Windows
Wrapper sobre 2 pipelines del registry segun el framework:
- C++ (imgui / cmake) →
compile_cpp_app_bash_pipelines. Cross-compile MinGW + assets/enrichers/runtime + taskkill, NO relanza. - Wails Go (matrix_client_pc, matrix_admin_panel, etc.) →
compile_wails_app_bash_pipelines.wails build -platform windows/amd64con-tags goolmsi E2EE + taskkill + RELANZA la app tras copy.
Toda la logica vive en el registry (resolver app desde CWD/arg, build, deploy con preservacion de local_files/).
Dispatch
cd $HOME/fn_registry
# Detecta framework via wails.json o CMakeLists.txt en el dir del app
APP="$ARGUMENTS"
RESOLVED=$(bash -c '
source bash/functions/infra/resolve_cpp_app_dir.sh
resolve_cpp_app_dir "'"$APP"'"
' 2>/dev/null) || true
APP_DIR="$(echo "$RESOLVED" | cut -f2)"
if [ -n "$APP_DIR" ] && [ -f "$APP_DIR/wails.json" ]; then
./fn run compile_wails_app "$ARGUMENTS"
elif [ -n "$APP_DIR" ] && [ -f "$APP_DIR/CMakeLists.txt" ]; then
./fn run compile_cpp_app "$ARGUMENTS"
else
echo "ERROR: no se detecto framework (falta wails.json o CMakeLists.txt en $APP_DIR)" >&2
exit 1
fi
Argumento
$ARGUMENTS — opcional. Nombre de app (ej: chart_demo, matrix_client_pc).
- Sin argumento: deduce desde
pwdsi estas dentro decpp/apps/<X>/,apps/<X>/oprojects/*/apps/<X>/. - Si no se puede deducir y no se pasa argumento, lista las apps disponibles en stderr y aborta.
Que hace el pipeline (C++)
resolve_cpp_app_dir_bash_infra— resuelve<app_name>y<dir absoluto>.- Verifica
CMakeLists.txt. build_cpp_windows_bash_infra <app>— cross-compila con MinGW.deploy_cpp_exe_to_windows_bash_infra <app> <dir>:taskkill.exe /IM <app>.exe /F.- Copia
<app>.exe+ DLLs. - rsync
assets/,enrichers/,runtime/(si aplica). - Preserva
local_files/. - NO relanza.
Que hace el pipeline (Wails)
resolve_cpp_app_dir_bash_infra(reusado — sirve para Wails apps tambien).- Verifica
wails.json+go.mod. - Detecta
-tags goolmautomaticamente (grepmatrix_crypto_initenapp.mdobuild:tagsenwails.json). wails build -platform windows/amd64 [-tags goolm].deploy_wails_exe_to_windows_bash_infra <app> <dir>:taskkill.exe /IM <app>.exe /F.- Copia
<app>.exe(+appicon.icosi existe). - Relanza via
cmd.exe /c start "" <app>.exe. - Preserva
local_files/.
Notas
- Solo target Windows hoy. Linux ya lo da
wails build/cpp/build/nativo. - Variables override-ables:
BUILD_WIN,WIN_DESKTOP_APPS,FN_REGISTRY_ROOT. - Si la app C++ no esta registrada en
cpp/CMakeLists.txt, el build falla — registrar siguiendo.claude/rules/cpp_apps.md§5. - Si la app Wails falla build con
no required module provides package, corrergo mod tidyen el dir del app primero. - Para tocar la logica: editar
bash/functions/{infra,pipelines}/{resolve_cpp_app_dir,build_cpp_windows,deploy_{cpp,wails}_exe_to_windows,compile_{cpp,wails}_app}.sh, no este wrapper.