@echo off
setlocal ENABLEDELAYEDEXPANSION

for /d %%d in (%cd%) do set base_name=%%~nxd
set bin_name=%base_name%.exe
set pdb_name=%base_name%.pdb

set bold_white=
set bold_green=
set bold_red=
set end=

set run_tests=0
set compiler_defines=
set common_compiler_flags=-debug -pdb-name:%pdb_name% -show-timings -vet -strict-style -warnings-as-errors
for %%x in (%*) do (
  if "%%~x" == "-tests" (
    set run_tests=1
  ) else if "%%~x" == "-release" (
    set common_compiler_flags=-o:speed -show-timings -vet -strict-style -warnings-as-errors
  ) else (
    echo %bold_red%Unknown argument "%%~x".%end%
    exit -1
  )
)
set compiler_flags=%compiler_defines% %common_compiler_flags%
echo %bold_white%Using compiler flags:%end% %compiler_flags%

if not exist build mkdir build
pushd build

if %run_tests% neq 0 (
  echo.
  echo %bold_white%Running tests%end%
  odin test ../src %compiler_flags%
  set result=%errorlevel%
  if %result% neq 0 (
    echo %bold_red%FAIL%end%
    exit %result%
  )
)

echo.
echo %bold_white%Building:%end% %cd%/build/%bin_name%
odin build ../src -out:%bin_name% %compiler_flags%
set result=%errorlevel%
if %result% neq 0 (
  echo %bold_red%FAIL%end%
  exit %result%
)

echo.
echo %bold_green%OK%end%

popd