#!/bin/bash
set -ev

# Directories.
root_dir=`pwd`
build_dir="$root_dir/_travis/build"
install_dir="$root_dir/_travis/install"
export DEVEL_DIR="$root_dir/_travis/"

# Shortcuts.
git_clone="git clone --recursive --quiet"
git_branch=devel

# Create layout.
rm -rf "$build_dir" "$install_dir"
mkdir -p "$build_dir"
mkdir -p "$install_dir"

# Setup environment variables.
export LD_LIBRARY_PATH="$install_dir/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$install_dir/lib/`dpkg-architecture -qDEB_BUILD_MULTIARCH`:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$install_dir/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="$install_dir/lib/`dpkg-architecture -qDEB_BUILD_MULTIARCH`/pkgconfig:$PKG_CONFIG_PATH"

export PATH=$DEVEL_DIR/install/sbin:$DEVEL_DIR/install/bin:$PATH
# export PKG_CONFIG_PATH=$DEVEL_DIR/install/lib/pkgconfig/
# export PYTHONPATH=$DEVEL_DIR/install/lib/python2.7/site-packages:$DEVEL_DIR/install/lib/python2.7/dist-packages:$PYTHONPATH
# export LD_LIBRARY_PATH=$DEVEL_DIR/install/lib:$LD_LIBRARY_PATH

cmake_args="-DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX:STRING='$install_dir' -DCMAKE_BUILD_TYPE=Release"
make_args="-s -j4"

install_eigen3()
{
    echo "--> Compiling Eigen"
    mkdir -p "$build_dir"
    cd "$build_dir"
    wget --quiet -O - "http://bitbucket.org/eigen/eigen/get/3.2.4.tar.bz2" | tar -xj
    mv eigen-eigen-10219c95fe65 eigen3
    cd "$build_dir/eigen3"
    mkdir build
    cd build
    cmake $cmake_args -Dpkg_config_libdir="$install_dir/lib" ..
    make $make_args install
}

install_doxygen()
{
    echo "--> Compiling Doxygen"
    mkdir -p "$build_dir"
    cd "$build_dir"
    wget --quiet -O - "https://github.com/doxygen/doxygen/archive/Release_1_8_10.tar.gz" | tar -xz;
    cd "$build_dir/doxygen-Release_1_8_10"
    mkdir build
    cd build
    cmake $cmake_args ..
    make $make_args install
}

check_dependency()
{
    echo "--> Compiling $1"
    mkdir -p "$build_dir/$1"
    cd "$build_dir"
    $git_clone "git://github.com/$1" "$1"
    cd "$build_dir/$1"
    mkdir build
    cd build
    cmake $cmake_args ..
    make $make_args
}

install_dependency()
{
    echo "--> Compiling $1"
    mkdir -p "$build_dir/$1"
    cd "$build_dir"
    if [ "$#" -eq "2" ]; then
      branch=$2
    else
      branch=$git_branch
    fi
    $git_clone --branch $branch "git://github.com/$1" "$1"
    cd "$build_dir/$1"
    mkdir build
    cd build
    cmake $cmake_args ..
    make $make_args install
}

# Install dependencies
install_dependency humanoid-path-planner/hpp-util               devel

# Compile and run tests
cd "$build_dir"
cmake "$root_dir" -DCMAKE_INSTALL_PREFIX="$install_dir"		\
		  -DCMAKE_INSTALL_PREFIX:STRING="$install_dir"
make $make_args
make $make_args test
make $make_args install
