name: MacOS

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: macos-latest

    steps:
    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    - uses: actions/checkout@v2

    - name: Install build tools
      run: brew install automake autoconf libtool pkg-config

    - name: Install libinotify-kqueue
      # brew does not have libinotify package
      run: |
        git clone https://github.com/libinotify-kqueue/libinotify-kqueue
        cd libinotify-kqueue
        autoreconf -fvi
        ./configure
        make
        sudo make install
        cd ..

    - name: Install sqlite
      # Brew package does not have unlock-notify
      run: |
        wget https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz
        tar xzf sqlite-autoconf-3310100.tar.gz
        cd sqlite-autoconf-3310100
        export CFLAGS='-DSQLITE_ENABLE_UNLOCK_NOTIFY=1'
        ./configure
        make
        sudo make install
        cd ..

    - name: Install gperf and antlr3
      run: |
        brew install gperf
        chmod +x ./scripts/antlr35_install.sh
        ./scripts/antlr35_install.sh -y -p /usr/local

    - name: Install ffmpeg
      # The libbluray ffmpeg dependency fails without the chown (source: stackoverflow)
      run: |
        sudo chown -R $(whoami) $(brew --prefix)/*
        brew install ffmpeg

    - name: Install other dependencies
      run: brew install libunistring libmxml confuse libplist sqlite libwebsockets libevent libgcrypt json-c protobuf-c libsodium gnutls pulseaudio openssl

    - name: Configure
      run: |
        autoreconf -fi
        ./configure --enable-chromecast --enable-lastfm --with-pulseaudio

    - name: Build
      run: |
        # Without setting these env vars the build fails with "fatal error: 'openssl/ssl.h' file not found"
        # (Solution taken from https://github.com/libimobiledevice/libimobiledevice/issues/389#issuecomment-289284190)
        export LD_LIBRARY_PATH=$(brew --prefix openssl)/lib
        export CPATH=$(brew --prefix openssl)/include
        export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig
        make

    - name: Install
      run: sudo make install
