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:
    - run: patch -p1 < props/illegal_instruction.patch
      if: <1.4.3

    - 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
  env:
    darwin/aarch64:
      # https://github.com/ggerganov/whisper.cpp/issues/1367
      WHISPER_NO_METAL: 1

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
