@echo off
setlocal

rem Kullanim: insa.bat [Debug^|Release^|Hizli] [temiz] [test] [calistir]
rem Ornek:   insa.bat                (VARSAYILAN: Hizli — gunluk gelistirme, hizli incremental link)
rem          insa.bat Release calistir  (dagitim: /GL+/LTCG tam optimize, yavas link)
rem          insa.bat Debug temiz test

set "KOK=%~dp0"
rem Varsayilan config = Hizli (gunluk gelistirme icin en hizli derle/link dongusu).
rem Dagitim derlemesi icin argumanla acikca "Release" gecilmeli.
set "YAPI=Release"
set "TEMIZ="
set "TEST="
set "CALISTIR="

:ayrist
if "%~1"=="" goto devam
if /I "%~1"=="Debug"    set "YAPI=Debug"    & shift & goto ayrist
if /I "%~1"=="Release"  set "YAPI=Release"  & shift & goto ayrist
if /I "%~1"=="Hizli"    set "YAPI=Hizli"    & shift & goto ayrist
if /I "%~1"=="temiz"    set "TEMIZ=1"       & shift & goto ayrist
if /I "%~1"=="test"     set "TEST=1"        & shift & goto ayrist
if /I "%~1"=="calistir" set "CALISTIR=1"    & shift & goto ayrist
echo Bilinmeyen parametre: %~1
exit /b 1

:devam
set "INSA=%KOK%insa\%YAPI%"
set "VCVARS=D:\__sistem__\ProgramFiles\VsStudio\VC\Auxiliary\Build\vcvars64.bat"
set "NINJA=D:\__sistem__\ProgramFiles\AndroidSdk\cmake\3.22.1\bin\ninja.exe"

if defined TEMIZ if exist "%INSA%" rmdir /s /q "%INSA%"

call "%VCVARS%" >nul 2>&1
if errorlevel 1 echo vcvars64 yuklenemedi & exit /b 1

cmake -S "%KOK%." -B "%INSA%" -G Ninja -DCMAKE_MAKE_PROGRAM="%NINJA%" -DCMAKE_BUILD_TYPE=%YAPI% -DFIKO_URETICI_UI=ON
if errorlevel 1 exit /b 1

rem test istenmediyse yalniz uygulama hedefini derle (23 test exe'sini bosuna derleme)
if defined TEST (
  cmake --build "%INSA%"
) else (
  cmake --build "%INSA%" --target fikocad
)
PAUSE
if errorlevel 1 exit /b 1

if defined TEST (
  ctest --test-dir "%INSA%" --output-on-failure
  if errorlevel 1 exit /b 1
)

if defined CALISTIR "%INSA%\uygulama\fikocad\fikocad.exe"

endlocal

PAUSE
