Kazeia-engine/dist/build_ggml_vulkan.sh

38 lines
1.2 KiB
Bash
Executable File

#!/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