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 gperf, bison and flex # MacOS comes with an ancient bison, we need a newer version. Homebrew's # bison and flex are keg-only, which means they are not symlinked into # /usr/local because macOS already provides this software. Homebrew tells # you to adjust the $PATH, but I couldn't make that work, and I think # symlinking is a better solution for simple binaries. run: | brew install gperf bison flex sudo ln -s /usr/local/opt/bison/bin/bison /usr/local/bin/bison sudo ln -s /usr/local/opt/flex/bin/flex /usr/local/bin/flex - 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 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