#! /usr/bin/env bash

target=$1
buildType=$2

project=$(pwd)/

if [[ $target == gba ]]; then
	toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/modules/GBA.cmake"
	nostalgiaBuildType="GBA"
else
	nostalgiaBuildType="Native"
fi

if [[ $buildType == asan ]]; then
	buildTypeArg="Debug"
	sanitizerStatus="ON"
elif [[ $buildType == debug ]]; then
	buildTypeArg="Debug"
	sanitizerStatus="OFF"
elif [[ $buildType == release ]]; then
	buildTypeArg="Release"
	sanitizerStatus="OFF"
fi

buildConfig=${target}-${buildType}

if [[ $NOSTALGIA_QT_PATH != "" ]]; then
	qtPath="-DNOSTALGIA_QT_PATH=${NOSTALGIA_QT_PATH}"
fi

buildDir="${project}/build/${buildConfig}"
mkdir -p $buildDir
cmake -S $project -B $buildDir -GNinja \
      -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
      -DCMAKE_BUILD_TYPE=${buildTypeArg} \
      -DUSE_ASAN=${sanitizerStatus} \
      -DNOSTALGIA_IDE_BUILD=OFF \
      -DNOSTALGIA_BUILD_CONFIG=${buildConfig} \
      -DNOSTALGIA_BUILD_TYPE=${nostalgiaBuildType} \
      $qtPath \
      $toolchain

mkdir -p dist
echo ${buildConfig} > .current_build
rm -f compile_commands.json
ln -s build/${buildConfig}/compile_commands.json