#!/usr/bin/env bash # Réassemble dist/lib/ depuis le build ql/b + recopie le prompt système. # Ne rebuild PAS : lance d'abord le build dans ql/b (cmake+ninja, preset arm64-android-snapdragon). # libkazeia_engine.so (bridge statique) se build à part via dist/CMakeLists.txt si jni/*.cpp change. set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)" B="$HERE/../ql/b" [ -d "$B/bin" ] || { echo "build absent: $B (cmake+ninja d'abord)"; exit 1; } mkdir -p "$HERE/lib" # runtime .so (ggml/llama/cpu/hexagon) for f in libggml.so libggml-base.so libggml-cpu.so libggml-hexagon.so libllama.so; do cp -v "$B/bin/$f" "$HERE/lib/$f" done # skels HTP (sélection auto runtime -> V79 sur Pad3) for v in 68 69 73 75 79 81; do cp -v "$B/ggml/src/ggml-hexagon/libggml-htp-v$v.so" "$HERE/lib/libggml-htp-v$v.so" done # libc++ NDK (bench/cli ; l'app fournit normalement le sien) CPP=$(find "${ANDROID_NDK_ROOT:-/opt/Kazeia/android-ndk-r27d}" -name libc++_shared.so -path '*aarch64*' | head -1) [ -n "$CPP" ] && cp -v "$CPP" "$HERE/lib/libc++_shared.so" || echo "warn: libc++_shared introuvable" echo "OK. Rappel: libkazeia_engine.so (statique) = build séparé si jni/ a changé (dist/CMakeLists.txt)." echo "Modèle q35-lmq4.gguf NON copié (2.38 GB, hors git): adb pull /data/local/tmp/kz-engine/q35-lmq4.gguf"