#!/bin/bash

# linuxdeployqt uses this for naming the file
export VERSION=$(git rev-parse --short=8 HEAD)

if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then

    # Generate Makefile
    cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo

    # Make
    make -j$(sysctl -n hw.ncpu)

    # Handle compile failure
    if [ "$?" != "0" ]
    then
        exit 1
    fi

    BUNDLE_NAME=Olive.app

    # Move bundle to working directory
    mv app/$BUNDLE_NAME .

    # Move Qt deps into bundle
    macdeployqt $BUNDLE_NAME

    # Fix other deps that macdeployqt missed
    curl -fLOSs --retry 3 https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py
    python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive /usr/local/Cellar/qt5/5.*/

    # Fix deps on crash handler
    python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/olive-crashhandler /usr/local/Cellar/qt5/5.*/

    # Fix OpenEXR libs that seem to be missed by both macdeployqt _and_ macdeployqtfix
    cd $BUNDLE_NAME/Contents/Frameworks
    exrlib=(libImath-*.dylib libHalf-*.dylib libIexMath-*.dylib libIex-*.dylib libIlmThread-*.dylib)

    for a in ${exrlib[@]}; do
        for b in ${exrlib[@]}; do
            install_name_tool -change @rpath/$b @executable_path/../Frameworks/$b $a
        done
    done

    cd ../../..

    # Distribute in zip
    zip -r Olive-$VERSION-macOS.zip $BUNDLE_NAME

elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then

    # Generate Makefile
    cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo

    # Make
    make -j$(nproc)

    # Handle compile failure
    if [ "$?" != "0" ]
    then
        exit 1
    fi

    # Use `make install` on `appdir` to place files in the correct place
    make DESTDIR=appdir install

    # Download linuxdeployqt
    wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
    chmod a+x linuxdeployqt-continuous-x86_64.AppImage

    unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH

    # Use linuxdeployqt to set up dependencies
    ./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/local/share/applications/*.desktop -extra-plugins=imageformats/libqsvg.so -appimage

fi
