#!/usr/bin/env bash

# See: http://wiki.qt.io/Building_Qt_5_from_Git
# See: http://doc.qt.io/qt-5/configure-options.html

REPO_URL='git://code.qt.io/qt/qt5.git'
QT_VERSION='5.10'

RPM_NAME=linphone-qt-${QT_VERSION}

REPO_FOLDER=linphone-qt
RPM_FOLDER=rpm-${RPM_NAME}

# ==============================================================================

RED='\e[1;31m'
NC='\e[0m'

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${SCRIPT_DIR}/.."

# ==============================================================================

if [ ! -d "${REPO_FOLDER}/.git" ]; then
  git clone "${REPO_URL}" "${REPO_FOLDER}"
fi
cd "${REPO_FOLDER}"

while test $# -gt 0
do
  case "$1" in
    --clean)
      echo "Clean..."
      git submodule foreach 'git clean -dfx'
      ;;
    --*) echo "Invalid option: $1"
      ;;
  esac
  shift
done

git checkout "${QT_VERSION}"
if [[ $? != 0 ]] ; then
  printf "${RED}Unable to checkout ${QT_VERSION}.${NC}\n"
  exit 1
fi

./init-repository --module-subset=default,\
-qtandroidextras,\
-qtcharts,\
-qtdoc,\
-qtlocation,\
-qtmacextras,\
-qtnetworkauth,\
-qtpurchasing,\
-qtremoteobjects,\
-qtrepotools,\
-qtscript,\
-qtscxml,\
-qtsensors,\
-qtspeech,\
-qtwebchannel,\
-qtwebengine,\
-qtwebglplugin,\
-qtwebsockets,\
-qtwebview,\
-qtwinextras,\
-qtx11extras,\
-qtxmlpatterns \
-f

cd ..

mkdir -p ${RPM_FOLDER}/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
tar --transform "s/^${REPO_FOLDER}/${RPM_NAME}/" -czvf ${RPM_FOLDER}/rpmbuild/SOURCES/${RPM_NAME}.tar.gz ${REPO_FOLDER}/

rpmbuild -bb --define "_topdir $PWD/${RPM_FOLDER}/rpmbuild" build/rpm/qt5.spec
