68 lines
1.6 KiB
Batchfile
68 lines
1.6 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
:: --- 1. Argument Parsing Logic ---
|
|
set "ARG1="
|
|
set "ARG2="
|
|
set "ARG3="
|
|
set "AUTOCLOSE=0"
|
|
set "CUSTOM_EXE="
|
|
|
|
for %%x in (%*) do (
|
|
if /I "%%~x"=="autoclose" (
|
|
set "AUTOCLOSE=1"
|
|
) else (
|
|
if not defined ARG1 (
|
|
set "ARG1=%%~x"
|
|
) else if not defined ARG2 (
|
|
set "ARG2=%%~x"
|
|
) else if not defined ARG3 (
|
|
set "ARG3=%%~x"
|
|
)
|
|
)
|
|
)
|
|
|
|
:: Set Defaults
|
|
set "COMPILER_TYPE=clang"
|
|
set "CONFIG=Debug"
|
|
set "APP_EXE=JulietApp.exe"
|
|
|
|
:: Check for Configuration, Compiler, or custom EXE name
|
|
:: (Assuming the custom EXE name is passed as the final argument if needed)
|
|
for %%i in (%ARG1% %ARG2% %ARG3%) do (
|
|
if /I "%%i"=="Release" set "CONFIG=Release"
|
|
if /I "%%i"=="Profile" set "CONFIG=Profile"
|
|
if /I "%%i"=="Debug" set "CONFIG=Debug"
|
|
if /I "%%i"=="msvc" set "COMPILER_TYPE=msvc"
|
|
if /I "%%i"=="clang" set "COMPILER_TYPE=clang"
|
|
|
|
:: If argument contains .exe, treat it as the target executable name
|
|
echo %%i | findstr /i ".exe" >nul && set "APP_EXE=%%i"
|
|
)
|
|
|
|
:: --- 2. Map Compiler to Platform ---
|
|
if /I "%COMPILER_TYPE%"=="clang" (
|
|
set "PLATFORM=x64Clang"
|
|
) else (
|
|
set "PLATFORM=x64"
|
|
)
|
|
|
|
:: --- 3. Construct Paths ---
|
|
set "APP_DIR=bin\%PLATFORM%-%CONFIG%"
|
|
|
|
echo --- Launching %APP_EXE% ---
|
|
echo Platform: %PLATFORM%
|
|
echo Config: %CONFIG%
|
|
|
|
:: --- 4. Execution ---
|
|
if exist "%APP_DIR%\%APP_EXE%" (
|
|
pushd "%APP_DIR%"
|
|
"%APP_EXE%" %*
|
|
popd
|
|
) else (
|
|
echo [ERROR] Executable not found at: %APP_DIR%\%APP_EXE%
|
|
echo Please build first: fbuild JulietApp-%PLATFORM%-%CONFIG%
|
|
pause
|
|
)
|
|
|
|
endlocal |