#!/bin/bash
program=agordejo
version=0.4.2

#debugsym=true
prefix=/usr/local
required_version_python=3.8
required_version_pyqt=5.0
required_version_pyxdg=0.27



for arg in "$@"; do
    case "$arg" in
    --prefix=*)
        prefix=`echo $arg | sed 's/--prefix=//'`
        ;;

    #--enable-debug)
    #    debugsym=true;;
    #--disable-debug)
    #    debugsym=false;;

    --help)
        echo 'usage: ./configure [options]'
        echo 'options:'
        echo '  --prefix=<path>: installation prefix'
        #echo '  --enable-debug: include debug symbols'
        #echo '  --disable-debug: do not include debug symbols'
        echo 'all invalid options are silently ignored'
        exit 0
        ;;
    esac
done

echo "PREFIX=$prefix"

echo
echo "Checking Dependencies"

function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }

command -v python3 >/dev/null 2>&1 || { echo >&2 "Python3 >= $required_version_python  is required but it's not installed.  Aborting."; exit 1; }
PY3VERSION=$(python3 -c 'import platform; print(platform.python_version())')
echo "Python version is: $PY3VERSION, required >= $required_version_python"
if version_gt $required_version_python $PY3VERSION; then echo "Python3 must be version >= $required_version_python but is $PY3VERSION. Aborting."; exit 1; fi


python3 -c 'import PyQt5' >/dev/null 2>&1 || { echo >&2 "PyQt for Python3 >= $required_version_pyqt is required but it's not installed.  Aborting."; exit 1; }
PYQTVERSION=$(python3 -c 'from PyQt5.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)')
echo "Py-Qt version is: $PYQTVERSION, required >= $required_version_pyqt"
if version_gt $required_version_pyqt $PYQTVERSION; then echo "PyQt must be version >= $required_version_pyqt but is $PYQTVERSION. Aborting."; exit 1; fi

python3 -c 'import xdg' >/dev/null 2>&1 || { echo >&2 "PyXDG for Python3 >= $required_version_pyxdg is required but it's not installed. https://freedesktop.org/wiki/Software/pyxdg/ . Aborting."; exit 1; }
PYXDGVERSION=$(python3 -c 'from xdg import __version__; print(__version__)')
echo "PyXDG version is: $PYXDGVERSION, required >= $required_version_pyxdg"
if version_gt $required_version_pyxdg $PYXDGVERSION; then echo "PyXDG must be version >= $required_version_pyxdg but is $PYXDGVERSION. Aborting."; exit 1; fi

echo
echo "Generating Makefile"
printf "PREFIX=$prefix\nPROGRAM=$program\nVERSION=$version\n" >Makefile

#if $debugsym; then
#    echo 'dbg = -g' >>Makefile
#fi
cat Makefile.in >>Makefile

echo
echo 'Configuration complete. Type make to build.'
