#!/bin/bash

# On OSX use coreutils package to fix absense of readlink command
if [[ $OSTYPE == darwin* ]]; then
  brew install coreutils
  PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
fi

# Import common functions
DIR=$(dirname "$(readlink -f "$0")") && RDM_DIR=$DIR/../
. $RDM_DIR/build/common_functions

GetOSVersion

RDM_QT_VERSION=${RDM_QT_VERSION:-542}

if [ "$1" == "breakpad" ]; then
    print_title "Build only Breakpad"
    build_breakpad
    exit 0
fi

if [ "$os_VENDOR" == "Ubuntu" ]; then
    ubuntu_ver=${os_RELEASE:0:2}	
    print_title "Build RDM on Ubuntu: $ubuntu_ver"

    if [ "$ubuntu_ver" == "12" ]; then
        print_title "Install gcc 4.9"
        sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
        sudo apt-get update -qq
        sudo apt-get install gcc-4.9 g++-4.9 gdb -y -qq
        sudo rm -f /usr/bin/gcov
        sudo rm -f /usr/bin/gcc
        sudo rm -f /usr/bin/g++
        sudo ln -s /usr/bin/gcov-4.9 /usr/bin/gcov
        sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc
        sudo ln -s /usr/bin/g++-4.9 /usr/bin/g++
    fi

    # Check latest Qt 5.5
    if [ ! -f /opt/qt${RDM_QT_VERSION:0:2}/bin/qt${RDM_QT_VERSION:0:2}-env.sh ]; then
        print_title "Install Qt ${RDM_QT_VERSION}"

	if [ "$ubuntu_ver" == "14" ]; then
        	sudo add-apt-repository --yes ppa:beineri/opt-qt${RDM_QT_VERSION}-trusty
        elif [ "$ubuntu_ver" == "12" ]; then
		sudo add-apt-repository --yes ppa:beineri/opt-qt${RDM_QT_VERSION}
	fi

        sudo apt-get update -y
        sudo apt-get install qt${RDM_QT_VERSION:0:2}base qt${RDM_QT_VERSION:0:2}imageformats qt${RDM_QT_VERSION:0:2}tools \
            qt${RDM_QT_VERSION:0:2}declarative qt${RDM_QT_VERSION:0:2}quickcontrols qt${RDM_QT_VERSION:0:2}script qt${RDM_QT_VERSION:0:2}quick1 -y
    fi

    # Install CI environment if needed
    if [ $RDM_CI ]; then
        print_title "Install CI deps"
        sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev -y
        sudo apt-get install libdbus-1-dev -y
        sudo apt-get install libxext-dev -y
        sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper \
            dh-make diffutils patch gnupg fakeroot lintian pbuilder git python perl -y
        sudo apt-get build-dep qt5-default -y
    fi
        
    print_title "Check deps"
    sudo apt-get install automake libtool libssl-dev \
        libssh2-1-dev g++ libgl1-mesa-dev -y

    build_breakpad

    print_title "Run: source /opt/qt${RDM_QT_VERSION:0:2}/bin/qt${RDM_QT_VERSION:0:2}-env.sh && qmake && make "
elif [  "$os_VENDOR" == "Fedora" ]; then
    print_title "Build RDM on Fedora: $os_RELEASE"

    print_title "Check deps"
    sudo yum install libssh2 libssh2-devel qt5-qtbase qt5-qtsvg-devel \
        qt5-qtdeclarative-devel qt5-qtgraphicaleffects qt5-qtquickcontrols  \
        qt5-qttools gcc gcc-c++ libstdc++-static git rsync \
        redhat-rpm-config -y

    build_breakpad

    print_title "Run: qmake-qt5 && make "

elif [[ $OSTYPE == darwin* ]]; then
    cd $DEPS_DIR
    chmod -R 755 gbreakpad && cd gbreakpad/
    xcodebuild -sdk macosx -project src/client/mac/Breakpad.xcodeproj -configuration Release -target Breakpad ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES MACOSX_DEPLOYMENT_TARGET=10.10 GCC_VERSION=com.apple.compilers.llvm.clang.1_0 > /dev/null
    xcodebuild -sdk macosx -project src/client/mac/Breakpad.xcodeproj -configuration Release -target Breakpad install DSTROOT=$DEPS_DIR/../bin/osx INSTALL_PATH=/Frameworks ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES MACOSX_DEPLOYMENT_TARGET=10.10 GCC_VERSION=com.apple.compilers.llvm.clang.1_0 > /dev/null
    xcodebuild -sdk macosx -project src/client/mac/Breakpad.xcodeproj -configuration Release -target Breakpad install DSTROOT=$DEPS_DIR/../bin INSTALL_PATH=/Frameworks ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES MACOSX_DEPLOYMENT_TARGET=10.10 GCC_VERSION=com.apple.compilers.llvm.clang.1_0 > /dev/null
    brew upgrade libssh2 || brew install libssh2
else
    echo "Your operation system is not supported!"
fi
