Files
Juliet/misc/recompile_shaders.bat
Patedam f95ba51c13 Added a basic MemoryArena.
Added one scratch, one engine and one game arena.
Converted the game alloc to arena + the display stuff.
WIP

Made using Antigravity+gemini
2026-01-17 21:09:23 -05:00

76 lines
2.2 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
set TARGET=x64Clang-Release
REM Chemin relatif vers JulietShaderCompiler.exe
set COMPILER_PATH=bin\%TARGET%\JulietShaderCompiler.exe
echo Compiler Path: !COMPILER_PATH!
REM --- GESTION D'ERREUR : Vérification du compilateur ---
if not exist "!COMPILER_PATH!" (
echo.
echo ERREUR : Le compilateur est introuvable au chemin : !COMPILER_PATH!
echo Assurez-vous d'avoir bien bati le projet JulietShaderCompiler.
pause
exit /b 1
)
REM Dossier source contenant les fichiers .frag.hlsl et .vert.hlsl
set SOURCE_DIR=Assets\source
echo Source Dir: !SOURCE_DIR!
REM --- GESTION D'ERREUR : Vérification du dossier source ---
if not exist "!SOURCE_DIR!" (
echo.
echo ERREUR : Le dossier source est introuvable : !SOURCE_DIR!
pause
exit /b 1
)
REM Dossier de sortie pour les fichiers compilés
set OUTPUT_DIR=Assets\compiled
echo Output Dir: !OUTPUT_DIR!
REM Créer le dossier de sortie s'il n'existe pas
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
REM Parcourir tous les fichiers .hlsl dans le dossier source
for %%F in ("%SOURCE_DIR%\*.hlsl") do (
set "FULL_FILENAME=%%~nF%%~xF"
REM Skip RootConstants.hlsl or other include files
if /I NOT "!FULL_FILENAME!"=="RootConstants.hlsl" (
REM Detect stage from filename (.vert.hlsl, .frag.hlsl)
set "SHORT_EXTENSION="
set "BASE_NAME=%%~nF"
echo !FULL_FILENAME! | findstr /I "\.frag\.hlsl" >nul
if !ERRORLEVEL! EQU 0 (
set "SHORT_EXTENSION=frag"
set "BASE_NAME=!BASE_NAME:.frag=!"
) else (
echo !FULL_FILENAME! | findstr /I "\.vert\.hlsl" >nul
if !ERRORLEVEL! EQU 0 (
set "SHORT_EXTENSION=vert"
set "BASE_NAME=!BASE_NAME:.vert=!"
)
)
if not "!SHORT_EXTENSION!"=="" (
set "OUTPUT_FILE=%OUTPUT_DIR%\%%~nF.dxil"
set "COMMAND=%COMPILER_PATH% %%F -o !OUTPUT_FILE!"
echo Compiling: %%F to !OUTPUT_FILE!
!COMMAND!
if errorlevel 1 (
echo ERREUR lors de la compilation de %%F
)
)
)
)
echo.
echo Operation terminee.
endlocal