#!/bin/sh
#
# Installed MinGW needed.
# Ubuntu :
#   sudo apt-get install g++-mingw-w64-i686
#   sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
#   sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix



if [ -z $1 ]
then
    echo "Usage: xmingw <path to LyX sources>"
    exit 1
fi


lyxsrcdir=$1
builddir=$PWD

# ---------------------------------------------------------
# set 'versionname' to overwrite generated one based on 'ver'
#
ver=2.3
date=`date --utc '+%Y.%m.%d-%H.%M'`
if [ -z $versionname ]; then
    versionname=LyX$ver-$date
fi


echo ---------------------------------------------------------
echo ---------- Building $versionname
echo ---------------------------------------------------------

# ---------------------------------------------------------
#
# helper function to check return code
#
checkExitCode() {
    exitcode=$?
    if [ $exitcode -ne 0 ]; then
        echo Command failed
        exit 1
    fi
}

dep=$lyxsrcdir/../lyx-dependencies
mkdir -p $dep


server=http://sourceforge.net/projects/kst/files/3rdparty

if [ "$2" = "x64" ]; then
    mingw=x86_64-w64-mingw32
    win=win64
    branch=LyX$ver-master-win64
else
    win=win32
    mingw=i686-w64-mingw32
    branch=LyX$ver-master-win32
fi

qtver=5.5.1
qtver=Qt-$qtver-$mingw
compiler=$mingw
LTS=14.04

echo Checking mingw installation ...
$compiler-gcc -dumpversion
checkExitCode


# ---------------------------------------------------------
#
# download and unpack Qt
#
if [ ! -d $dep/$qtver ]; then
    qttar=$qtver-Ubuntu64-$LTS$tarver.tar
    wget $server/$qttar.xz
    checkExitCode
    xz -d $qttar.xz
    cd $dep
    tar xf $builddir/$qttar
    checkExitCode
    echo -e "[Paths]\nPrefix = $dep/$qtver" > $dep/$qtver/bin/qt.conf
    cd $builddir
fi
export PATH=$dep/$qtver/bin:$PATH
echo Checking Qt installation ...
which qmake
checkExitCode



# ---------------------------------------------------------
#
# build LyX
#

mergefile=-DLYX_MERGE_FILES=1
#pch=-DLYX_PCH=1

cmake $lyxsrcdir \
	-DCMAKE_VERBOSE_MAKEFILE=1 \
    -DLYX_CPACK=1 \
    -DLYX_PROGRAM_SUFFIX="" \
    -DLYX_CONSOLE=FORCE \
    -DLYX_XMINGW=$compiler \
    -DLYX_USE_QT=QT5 \
    -DLYX_QUIET=1 \
    -DLYX_HUNSPELL=1 \
    -DLYX_3RDPARTY_BUILD=1 \
    $pch $mergefile

checkExitCode


processors=3
lyxmake() {
	make -j$processors $1
	checkExitCode
}


lyxmake translations
lyxmake doc
lyxmake LyX 
lyxmake tex2lyx

make install
checkExitCode


# ---------------------------------------------------------
#
# deploy
#
make package
checkExitCode