distributable:
  url: https://github.com/xiph/opus/archive/refs/tags/v{{ version.raw }}.tar.gz
  strip-components: 1

versions:
  github: xiph/opus/tags
  strip: /^v/

build:
  dependencies:
    gnu.org/autoconf: 2
    gnu.org/automake: 1.16
    gnu.org/libtool: 2.4
    gnu.org/wget: '*' # downloads content at build time
  script:
    - ./autogen.sh
    - ./configure $ARGS
    - make --jobs {{ hw.concurrency }}
    - make install

    - run: |
        mv opus/* .
        rmdir opus
        ln -s . opus
      working-directory: ${{ prefix }}/include
  env:
    ARGS:
      - --prefix={{ prefix }}
      - --disable-dependency-tracking
      - --disable-doc

test:
  - run: cc $FIXTURE -lopus -o test
    fixture:
      extname: cpp
      content: |
        #include <opus.h>
        int main(int argc, char **argv)
        {
          int err = 0;
          opus_int32 rate = 48000;
          int channels = 2;
          int app = OPUS_APPLICATION_AUDIO;
          OpusEncoder *enc;
          int ret;
          enc = opus_encoder_create(rate, channels, app, &err);
          if (!(err < 0))
          {
            err = opus_encoder_ctl(enc, OPUS_SET_BITRATE(OPUS_AUTO));
            if (!(err < 0))
            {
                opus_encoder_destroy(enc);
                return 0;
            }
          }
          return err;
        }
  - ./test
