@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. pause endlocal