#!/usr/bin/env bash # Build ggml-vulkan pour Android arm64 dans un répertoire de test. # Cible : produire libggml-vulkan.so + précompiler les SPIR-V shaders. set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)" NDK="${ANDROID_NDK_ROOT:-/opt/Kazeia/android-ndk-r27d}" SRC="/opt/Kazeia-engine/ql" B="$HERE/b-vulkan" mkdir -p "$B" cd "$B" # Vulkan SDK headers + lib viennent du NDK sysroot directement. # glslc pour compiler les shaders compute en SPIR-V. GLSLC="$NDK/shader-tools/linux-x86_64/glslc" cmake "$SRC" \ -DCMAKE_TOOLCHAIN_FILE="$NDK/build/cmake/android.toolchain.cmake" \ -DANDROID_ABI=arm64-v8a \ -DANDROID_PLATFORM=android-31 \ -DCMAKE_BUILD_TYPE=Release \ -DGGML_VULKAN=ON \ -DGGML_HEXAGON=OFF \ -DGGML_BACKEND_DL=ON \ -DBUILD_SHARED_LIBS=ON \ -DLLAMA_BUILD_TOOLS=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_SERVER=OFF \ -DLLAMA_BUILD_TESTS=OFF \ -DSPIRV-Headers_DIR=/tmp/spirv-install/share/cmake/SPIRV-Headers \ -DVulkan_GLSLC_EXECUTABLE="$GLSLC" \ -G Ninja 2>&1 | tail -20 echo "" echo "=== cmake done, building libggml-vulkan ===" ninja ggml-vulkan 2>&1 | tail -10 echo "" find . -name "libggml-vulkan*" 2>/dev/null