#!/bin/bash

# Keep the current folder
curdir=`pwd`

# Clear old installers
os_name=`uname -s`
upload_file="no"
build_gtk3="no"
wx_config_gtk3_path=""

os_name=`uname -s`
if [ ${os_name} == "Darwin" ]; then
    echo rm -f $curdir/build-release/codelite.app.tar.gz
    rm -f $curdir/build-release/codelite.app.tar.gz
    cpu_count=`sysctl -n hw.ncpu`
else
    cpu_count=`nproc`
fi

## parse the command line arguments and over defaults
for i in "$@"
do
    case $i in
        "--upload")
            upload_file="yes"
            shift
            ;;
        --cpu-count=*)
            cpu_count="${i#*=}"
            shift
            ;;
        --with-gtk3=*)
            wx_config_gtk3_path="${i#*=}"
            build_gtk3="yes"
            shift
            ;;
    esac
done

echo "Platform     : ${os_name}"
echo "CPU count    : ${cpu_count}"
echo "Upload binary: ${upload_file}"
echo "GTK3 build   : ${wx_config_gtk3_path}"

# Update our source tree
cd $curdir
echo "Pulling CodeLite changes..."
echo `pwd`
git pull --rebase
if [ $? -ne 0 ]; then
    exit $?
fi

cd $curdir
ORIG_PATH=$PATH
ORIG_LDPATH=$LD_LIBRARY_PATH

linux_build_codelite() {
    mkdir -p $curdir/$1
    cd $curdir/$1 # cd to the build folder
    echo rm -fr *.deb
    rm -fr *.deb
    export PATH=$2:${ORIG_PATH}
    export LD_LIBRARY_PATH=$2/lib:${ORIG_LDPATH}
    cmake -DCMAKE_BUILD_TYPE=Release -DMAKE_DEB=1 -DCOPY_WX_LIBS=1 ..
    make -j${cpu_count} package
    if [ "${upload_file}" == "yes" ]; then
        deb_file=`ls -lt *.deb|awk '{print $9;}'|head -n 1`
        echo Uploading deb file ${deb_file}
        scp ${deb_file} root@codelite.org:/var/www/html/downloads/codelite/wip
    fi
    cd $curdir
}

linux_build_wxcrafter() {
    mkdir -p $curdir/$1
    cd $curdir/$1 # cd to the build folder
    echo rm -fr *.deb
    rm -fr *.deb
    export PATH=$2:${ORIG_PATH}
    export LD_LIBRARY_PATH=$2/lib:${ORIG_LDPATH}
    cmake .. -DCMAKE_BUILD_TYPE=Release -DCOPY_WX_LIBS=1 -DWXC_APP=1 -Wno-dev
    make -j${cpu_count} package
    rm -f *Unspecified.deb
    if [ "${upload_file}" == "yes" ]; then
        deb_file=`ls -lt *.deb|awk '{print $9;}'|head -n 1`
        echo Uploading deb file ${deb_file}
        scp ${deb_file} root@codelite.org:/var/www/html/downloads/codelite/wip
    fi
    cd $curdir
}

# Build and upload
if [ ${os_name} == "Darwin" ]; then
    cd build-release
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j${cpu_count} && make install
    if [ "${upload_file}" == "yes" ]; then
        tar cvfz codelite.app.tar.gz codelite.app/*
        scp codelite.app.tar.gz root@codelite.org:/var/www/html/downloads/codelite/wip
    fi
else
    linux_build_codelite build-release
    linux_build_wxcrafter build-release-wxcrafter
fi
