#!/bin/bash

set -e

BASEDIR=$(readlink -f "$(dirname "$0")"/..)

source "${BASEDIR}/ci/utils.sh"

if [[ "$1" == cpu ]]; then
    DMGE_WITH_DISTRIBUTED=OFF
    DMGE_WITH_CUDA=OFF
elif [[ "$1" == cuda ]]; then
    DMGE_WITH_DISTRIBUTED=ON
    DMGE_WITH_CUDA=ON
else
    log "Argument must cpu or cuda"
    exit 1
fi


function build() {
    log "Start to build"
    local build_dir="/tmp/build/${1}"
    mkdir -p "$build_dir"
    pushd ${build_dir} >/dev/null
        cmake -S "${BASEDIR}" -B "${build_dir}" \
            -DMGE_WITH_DISTRIBUTED=${DMGE_WITH_DISTRIBUTED} \
            -DMGE_WITH_CUDA=${DMGE_WITH_CUDA} \
            -DMGE_WITH_TEST=ON \
            -DCMAKE_BUILD_TYPE=RelWithDebInfo
        make -j$(($(nproc) * 2)) -I ${build_dir}
        make develop
    popd >/dev/null
    log "End build: $(ls ${build_dir})"
}

build "$@"
