mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-01-05 18:09:46 +03:00
Fixes line-endings for files with extensions vcd, cc, txt, bat, fxc, inc, lst, proto, mak, mm, cfg, res, rc, def, vmt, vsh, vbsp, inl, asm, m4, vcproj, vcxproj, sln, in, java, la, manifest, am, and rad. Also fixes README, CONTRIBUTING, CONTRIBUTORS, LICENSE, CHANGES, COPYING, and gitignore. Finally, fixes executable bits.
210 lines
5.8 KiB
Batchfile
Executable File
210 lines
5.8 KiB
Batchfile
Executable File
@echo off
|
|
|
|
set TTEXE=..\..\devtools\bin\timeprecise.exe
|
|
if not exist %TTEXE% goto no_ttexe
|
|
goto no_ttexe_end
|
|
|
|
:no_ttexe
|
|
set TTEXE=time /t
|
|
:no_ttexe_end
|
|
|
|
echo.
|
|
echo ==================== buildshaders %* ==================
|
|
%TTEXE% -cur-Q
|
|
set tt_start=%ERRORLEVEL%
|
|
set tt_chkpt=%tt_start%
|
|
|
|
|
|
REM ****************
|
|
REM usage: buildshaders <shaderProjectName>
|
|
REM ****************
|
|
|
|
setlocal
|
|
set arg_filename=%1
|
|
set shadercompilecommand=shadercompile.exe
|
|
set targetdir=shaders
|
|
set SrcDirBase=..\..
|
|
set shaderDir=shaders
|
|
set SDKArgs=
|
|
set SHADERINCPATH=vshtmp9/... fxctmp9/...
|
|
|
|
|
|
if "%1" == "" goto usage
|
|
set inputbase=%1
|
|
|
|
set DIRECTX_SDK_VER=pc09.00
|
|
set DIRECTX_SDK_BIN_DIR=dx9sdk\utilities
|
|
|
|
if /i "%6" == "-dx9_30" goto dx_sdk_dx9_30
|
|
goto dx_sdk_end
|
|
:dx_sdk_dx9_30
|
|
set DIRECTX_SDK_VER=pc09.30
|
|
set DIRECTX_SDK_BIN_DIR=dx10sdk\utilities\dx9_30
|
|
goto dx_sdk_end
|
|
:dx_sdk_end
|
|
|
|
if /i "%7" == "-force30" goto set_force30_arg
|
|
goto set_force_end
|
|
:set_force30_arg
|
|
set DIRECTX_FORCE_MODEL=30
|
|
goto set_force_end
|
|
:set_force_end
|
|
|
|
if /i "%2" == "-game" goto set_mod_args
|
|
goto build_shaders
|
|
|
|
REM ****************
|
|
REM USAGE
|
|
REM ****************
|
|
:usage
|
|
echo.
|
|
echo "usage: buildshaders <shaderProjectName> [-game] [gameDir if -game was specified] [-source sourceDir]"
|
|
echo " gameDir is where gameinfo.txt is (where it will store the compiled shaders)."
|
|
echo " sourceDir is where the source code is (where it will find scripts and compilers)."
|
|
echo "ex : buildshaders myshaders"
|
|
echo "ex : buildshaders myshaders -game c:\steam\steamapps\sourcemods\mymod -source c:\mymod\src"
|
|
goto :end
|
|
|
|
REM ****************
|
|
REM MOD ARGS - look for -game or the vproject environment variable
|
|
REM ****************
|
|
:set_mod_args
|
|
|
|
if not exist "%SDKBINDIR%\shadercompile.exe" goto NoShaderCompile
|
|
set ChangeToDir=%SDKBINDIR%
|
|
|
|
if /i "%4" NEQ "-source" goto NoSourceDirSpecified
|
|
set SrcDirBase=%~5
|
|
|
|
REM ** use the -game parameter to tell us where to put the files
|
|
set targetdir=%~3\shaders
|
|
set SDKArgs=-nompi -nop4 -game "%~3"
|
|
|
|
if not exist "%~3\gameinfo.txt" goto InvalidGameDirectory
|
|
goto build_shaders
|
|
|
|
REM ****************
|
|
REM ERRORS
|
|
REM ****************
|
|
:InvalidGameDirectory
|
|
echo -
|
|
echo Error: "%~3" is not a valid game directory.
|
|
echo (The -game directory must have a gameinfo.txt file)
|
|
echo -
|
|
goto end
|
|
|
|
:NoSourceDirSpecified
|
|
echo ERROR: If you specify -game on the command line, you must specify -source.
|
|
goto usage
|
|
goto end
|
|
|
|
:NoShaderCompile
|
|
echo -
|
|
echo - ERROR: shadercompile.exe doesn't exist in %SDKBINDIR%
|
|
echo -
|
|
goto end
|
|
|
|
REM ****************
|
|
REM BUILD SHADERS
|
|
REM ****************
|
|
:build_shaders
|
|
|
|
rem echo --------------------------------
|
|
rem echo %inputbase%
|
|
rem echo --------------------------------
|
|
REM make sure that target dirs exist
|
|
REM files will be built in these targets and copied to their final destination
|
|
if not exist %shaderDir% mkdir %shaderDir%
|
|
if not exist %shaderDir%\fxc mkdir %shaderDir%\fxc
|
|
if not exist %shaderDir%\vsh mkdir %shaderDir%\vsh
|
|
if not exist %shaderDir%\psh mkdir %shaderDir%\psh
|
|
REM Nuke some files that we will add to later.
|
|
if exist filelist.txt del /f /q filelist.txt
|
|
if exist filestocopy.txt del /f /q filestocopy.txt
|
|
if exist filelistgen.txt del /f /q filelistgen.txt
|
|
if exist inclist.txt del /f /q inclist.txt
|
|
if exist vcslist.txt del /f /q vcslist.txt
|
|
|
|
REM ****************
|
|
REM Generate a makefile for the shader project
|
|
REM ****************
|
|
perl "%SrcDirBase%\devtools\bin\updateshaders.pl" -source "%SrcDirBase%" %inputbase%
|
|
|
|
|
|
REM ****************
|
|
REM Run the makefile, generating minimal work/build list for fxc files, go ahead and compile vsh and psh files.
|
|
REM ****************
|
|
rem nmake /S /C -f makefile.%inputbase% clean > clean.txt 2>&1
|
|
echo Building inc files, asm vcs files, and VMPI worklist for %inputbase%...
|
|
nmake /S /C -f makefile.%inputbase%
|
|
|
|
REM ****************
|
|
REM Copy the inc files to their target
|
|
REM ****************
|
|
if exist "inclist.txt" (
|
|
echo Publishing shader inc files to target...
|
|
perl %SrcDirBase%\devtools\bin\copyshaderincfiles.pl inclist.txt
|
|
)
|
|
|
|
REM ****************
|
|
REM Add the executables to the worklist.
|
|
REM ****************
|
|
if /i "%DIRECTX_SDK_VER%" == "pc09.00" (
|
|
rem echo "Copy extra files for dx 9 std
|
|
)
|
|
if /i "%DIRECTX_SDK_VER%" == "pc09.30" (
|
|
echo %SrcDirBase%\devtools\bin\d3dx9_33.dll >> filestocopy.txt
|
|
)
|
|
|
|
echo %SrcDirBase%\%DIRECTX_SDK_BIN_DIR%\dx_proxy.dll >> filestocopy.txt
|
|
|
|
echo %SDKBINDIR%\shadercompile.exe >> filestocopy.txt
|
|
echo %SDKBINDIR%\shadercompile_dll.dll >> filestocopy.txt
|
|
echo %SDKBINDIR%\vstdlib.dll >> filestocopy.txt
|
|
echo %SDKBINDIR%\tier0.dll >> filestocopy.txt
|
|
|
|
REM ****************
|
|
REM Cull duplicate entries in work/build list
|
|
REM ****************
|
|
if exist filestocopy.txt type filestocopy.txt | perl "%SrcDirBase%\devtools\bin\uniqifylist.pl" > uniquefilestocopy.txt
|
|
if exist filelistgen.txt if not "%dynamic_shaders%" == "1" (
|
|
echo Generating action list...
|
|
copy filelistgen.txt filelist.txt >nul
|
|
)
|
|
|
|
REM ****************
|
|
REM Execute distributed process on work/build list
|
|
REM ****************
|
|
|
|
set shader_path_cd=%cd%
|
|
if exist "filelist.txt" if exist "uniquefilestocopy.txt" if not "%dynamic_shaders%" == "1" (
|
|
echo Running distributed shader compilation...
|
|
|
|
cd /D %ChangeToDir%
|
|
echo %shadercompilecommand% %SDKArgs% -shaderpath "%shader_path_cd:/=\%" -allowdebug
|
|
%shadercompilecommand% %SDKArgs% -shaderpath "%shader_path_cd:/=\%" -allowdebug
|
|
cd /D %shader_path_cd%
|
|
)
|
|
|
|
REM ****************
|
|
REM PC Shader copy
|
|
REM Publish the generated files to the output dir using XCOPY
|
|
REM This batch file may have been invoked standalone or slaved (master does final smart mirror copy)
|
|
REM ****************
|
|
:DoXCopy
|
|
if not "%dynamic_shaders%" == "1" (
|
|
if not exist "%targetdir%" md "%targetdir%"
|
|
if not "%targetdir%"=="%shaderDir%" xcopy %shaderDir%\*.* "%targetdir%" /e /y
|
|
)
|
|
goto end
|
|
|
|
REM ****************
|
|
REM END
|
|
REM ****************
|
|
:end
|
|
|
|
|
|
%TTEXE% -diff %tt_start%
|
|
echo.
|
|
|