distributable:
  url: https://github.com/ggerganov/whisper.cpp/archive/refs/tags/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: ggerganov/whisper.cpp

platforms:
  - darwin/aarch64
  - linux

provides:
  - bin/whisper.cpp

dependencies:
  gnu.org/wget: '*'
  libsdl.org: '*'

build:
  dependencies:
    freedesktop.org/pkg-config: ~0.29
    gnu.org/patch: '*'
  script: |
    patch -p1 < props/illegal_instruction.patch

    make --jobs {{ hw.concurrency }}
    make stream --jobs {{ hw.concurrency }}
    make command --jobs {{ hw.concurrency }}

    mkdir -p {{prefix}}/bin {{prefix}}/tbin {{prefix}}/share
    mv main stream command {{prefix}}/tbin
    chmod +x {{prefix}}/tbin/*

    mv models/download-ggml-model.sh {{prefix}}/tbin/download-ggml-model.sh
    mv props/whisper.cpp props/whisper-fetch {{prefix}}/bin
    mv examples/command/commands.txt {{prefix}}/share

test:
  dependencies:
    curl.se: '*'
  script: |
    curl -LO https://github.com/ggerganov/whisper.cpp/raw/master/samples/jfk.wav
    whisper.cpp -f jfk.wav --print-colors
