#!/bin/bash

MAKE_THREADS="8"
GLOBAL_LIBS="libncurses-dev  libboost-dev  nlohmann-json3-dev swig libinsighttoolkit5-dev"

DIR_PARALLELPROJ="parallelproj"
DIR_STIR="STIR"
DIR_BUILD_STIR="STIR_build"

if [ -z ${VIRTUAL_ENV} ]; then
    echo "ERROR:"
    echo "  Please make sure to activate your Python virtual environment is active."
    echo "  Otherwise, libraries are not installed to their appropriate location."
    exit 1
fi
PYTHON_DEST="${VIRTUAL_ENV}/lib/python$(python --version | cut -d " " -f2 | cut -d "." -f1,2)/site-packages"

echo "WARNING:"
echo "  Currently, this script is not able to install the libraries locally."
echo "  Thus, you will be asked for sudo permission in the following."
echo


##################### GLOBAL DEPENDENCIES ###########################################
echo "Install transitive dependencies [${GLOBAL_LIBS}] globally ..."
sudo apt-get install -y ${GLOBAL_LIBS}


##################### PARALLELPROJ ###########################################
echo "Install ${DIR_PARALLELPROJ} ..."
mkdir -p ${DIR_PARALLELPROJ}/build && \
cd ${DIR_PARALLELPROJ}/build && \
cmake .. && \
nice make -j ${MAKE_THREADS} && \
sudo make install && \
cd ../../


##################### STIR ###########################################
echo "Install ${DIR_STIR} ..."
# Note: we install STIR not in a build directory under the STIR clone because it does not specify such
#       a directory in its gitignore, which means that `git status` will always show changes 
mkdir -p ${DIR_BUILD_STIR} && \
cd ${DIR_BUILD_STIR} && \
cmake ../${DIR_STIR} -DPYTHON_DEST=${PYTHON_DEST} -DBUILD_SWIG_PYTHON=ON -DSTIR_OPENMP=ON -DCMAKE_INSTALL_PREFIX=${VIRTUAL_ENV} && \
nice make -j ${MAKE_THREADS} && \
make install && \
cd -