PKGNAME=ggml
PKGSEC=libs
PKGDEP="gcc-runtime glibc vulkan-loader libcl openblas"
PKGDES="Tensor library for machine learning"
BUILDDEP="vulkan-headers spirv-headers glslang shaderc \
          opencl-registry-api openblas lapack"
BUILDDEP__AMD64="${BUILDDEP} cuda"
BUILDDEP__ARM64="${BUILDDEP} cuda"

ABTYPE=cmakeninja
CMAKE_AFTER=(
    '-DBUILD_SHARED_LIBS=ON'
    '-DGGML_BACKEND_DL=ON'
    '-DGGML_BACKEND_DIR=/usr/lib/ggml'
    '-DGGML_NATIVE=OFF'
    '-DGGML_CPU_REPACK=ON'
    '-DGGML_VULKAN=ON'
    '-DGGML_OPENCL=ON'
    '-DGGML_OPENCL_USE_ADRENO_KERNELS=OFF'
    '-DGGML_BLAS=ON'
    '-DGGML_BLAS_VENDOR=Generic'
)

CMAKE_AFTER__AMD64=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_CPU_ALL_VARIANTS=ON'
    '-DGGML_CUDA=ON'
)

CMAKE_AFTER__ARM64=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_CPU_ALL_VARIANTS=ON'
    '-DGGML_CUDA=ON'
)

CMAKE_AFTER__LOONGARCH64=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_LSX=ON'
    '-DGGML_LASX=OFF'
)

CMAKE_AFTER__LOONGARCH64_NOSIMD=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_LSX=OFF'
    '-DGGML_LASX=OFF'
)

CMAKE_AFTER__RISCV64=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_RVV=OFF'
    '-DGGML_RV_ZFH=OFF'
    '-DGGML_RV_ZVFH=OFF'
    '-DGGML_RV_ZICBOP=OFF'
)

CMAKE_AFTER__LOONGSON3=(
    "${CMAKE_AFTER[@]}"
)

CMAKE_AFTER__PPC64EL=(
    "${CMAKE_AFTER[@]}"
    '-DGGML_CPU_ALL_VARIANTS=ON'
)

PKGBREAK="llama.cpp<=6265 whisper.cpp<=1.7.6"
