@echo off\r
-REM Update source for glslang (and eventually LunarGLASS)\r
+REM Update source for glslang, LunarGLASS, spirv-tools\r
\r
setlocal EnableDelayedExpansion\r
set errorCode=0\r
set BASE_DIR=%BUILD_DIR%..\r
set GLSLANG_DIR=%BASE_DIR%\glslang\r
set LUNARGLASS_DIR=%BASE_DIR%\LunarGLASS\r
+set SPIRV_TOOLS_DIR=%BASE_DIR%\spirv-tools\r
\r
REM // ======== Parameter parsing ======== //\r
\r
echo Available options:\r
echo --sync-glslang just pull glslang_revision\r
echo --sync-LunarGLASS just pull LunarGLASS_revision\r
+ echo --sync-spirv-tools just pull spirv-tools_revision\r
echo --build-glslang pulls glslang_revision, configures CMake, builds Release and Debug\r
echo --build-LunarGLASS pulls LunarGLASS_revision, configures CMake, builds Release and Debug\r
- echo --all sync and build both glslang and LunarGLASS\r
+ echo --build-spirv-tools pulls spirv-tools_revision, configures CMake, builds Release and Debug\r
+ echo --all sync and build glslang, LunarGLASS, spirv-tools\r
goto:finish\r
)\r
\r
set sync-glslang=0\r
set sync-LunarGLASS=0\r
+ set sync-spirv-tools=0\r
set build-glslang=0\r
set build-LunarGLASS=0\r
+ set build-spirv-tools=0\r
set check-glslang-build-dependencies=0\r
set check-LunarGLASS-fetch-dependencies=0\r
set check-LunarGLASS-build-dependencies=0\r
goto:parameterLoop\r
)\r
\r
+ if "%1" == "--sync-spirv-tools" (\r
+ set sync-spirv-tools=1\r
+ shift\r
+ goto:parameterLoop\r
+ )\r
+\r
if "%1" == "--build-glslang" (\r
set sync-glslang=1\r
set check-glslang-build-dependencies=1\r
goto:parameterLoop\r
)\r
\r
+ if "%1" == "--build-spirv-tools" (\r
+ set sync-spirv-tools=1\r
+ REM glslang has the same needs as spirv-tools\r
+ set check-glslang-build-dependencies=1\r
+ set build-spirv-tools=1\r
+ shift\r
+ goto:parameterLoop\r
+ )\r
+\r
if "%1" == "--all" (\r
set sync-glslang=1\r
set sync-LunarGLASS=1\r
+ set sync-spirv-tools=1\r
set build-glslang=1\r
set build-LunarGLASS=1\r
+ set build-spirv-tools=1\r
set check-LunarGLASS-fetch-dependencies=1\r
set check-glslang-build-dependencies=1\r
set check-LunarGLASS-build-dependencies=1\r
goto:error\r
)\r
\r
+if not exist spirv-tools_revision (\r
+ echo.\r
+ echo Missing spirv-tools_revision file! Place it next to this script with target version in it.\r
+ set errorCode=1\r
+ goto:error\r
+)\r
+\r
set /p LUNARGLASS_REVISION= < LunarGLASS_revision\r
set /p GLSLANG_REVISION= < glslang_revision\r
+set /p SPIRV_TOOLS_REVISION= < spirv-tools_revision\r
echo LUNARGLASS_REVISION=%LUNARGLASS_REVISION%\r
echo GLSLANG_REVISION=%GLSLANG_REVISION%\r
+echo SPIRV_TOOLS_REVISION=%SPIRV_TOOLS_REVISION%\r
\r
set /p LUNARGLASS_REVISION_R32= < LunarGLASS_revision_R32\r
echo LUNARGLASS_REVISION_R32=%LUNARGLASS_REVISION_R32%\r
\r
-echo Creating and/or updating glslang and LunarGLASS in %BASE_DIR%\r
+echo Creating and/or updating glslang, LunarGLASS, spirv-tools in %BASE_DIR%\r
\r
if %sync-glslang% equ 1 (\r
rd /S /Q %GLSLANG_DIR%\r
if %errorCode% neq 0 (goto:error)\r
)\r
\r
+if %sync-spirv-tools% equ 1 (\r
+ rd /S /Q %SPIRV_TOOLS_DIR%\r
+ if %errorlevel% neq 0 (goto:error)\r
+ if not exist %SPIRV_TOOLS_DIR% (\r
+ call:create_spirv-tools\r
+ )\r
+ if %errorCode% neq 0 (goto:error)\r
+ call:update_spirv-tools\r
+ if %errorCode% neq 0 (goto:error)\r
+)\r
+\r
if %build-glslang% equ 1 (\r
call:build_glslang\r
if %errorCode% neq 0 (goto:error)\r
if %errorCode% neq 0 (goto:error)\r
)\r
\r
-REM If we made it here, we are golden\r
+if %build-spirv-tools% equ 1 (\r
+ call:build_spirv-tools\r
+ if %errorCode% neq 0 (goto:error)\r
+)\r
+\r
echo.\r
-echo Success\r
+echo Exiting\r
goto:finish\r
\r
:error\r
svn revert -R .\r
goto:eof\r
\r
+:create_spirv-tools\r
+ echo.\r
+ echo Creating local spirv-tools repository %SPIRV_TOOLS_DIR%)\r
+ mkdir %SPIRV_TOOLS_DIR%\r
+ cd %SPIRV_TOOLS_DIR%\r
+ git clone git@gitlab.khronos.org:spirv/spirv-tools.git .
+ git checkout %SPIRV_TOOLS_REVISION%\r
+ if not exist %SPIRV_TOOLS_DIR%\source (\r
+ echo spirv-tools source download failed!\r
+ set errorCode=1\r
+ )\r
+goto:eof\r
+\r
+:update_spirv-tools\r
+ echo.\r
+ echo Updating %SPIRV_TOOLS_DIR%\r
+ cd %SPIRV_TOOLS_DIR%\r
+ git fetch --all\r
+ git checkout %SPIRV_TOOLS_REVISION%\r
+goto:eof\r
+\r
:build_glslang\r
echo.\r
echo Building %GLSLANG_DIR%\r
REM goto:eof\r
REM )\r
goto:eof\r
+\r
+:build_spirv-tools\r
+ echo.\r
+ echo Building %SPIRV_TOOLS_DIR%\r
+ cd %SPIRV_TOOLS_DIR%\r
+ mkdir build\r
+ set SPIRV_TOOLS_BUILD_DIR=%SPIRV_TOOLS_DIR%\build\r
+ cd %SPIRV_TOOLS_BUILD_DIR%\r
+ cmake -G "Visual Studio 12 2013 Win64" ..\r
+ msbuild ALL_BUILD.vcxproj /p:Platform=x64 /p:Configuration=Debug\r
+ REM Check for existence of one lib, even though we should check for all results\r
+ if not exist %SPIRV_TOOLS_BUILD_DIR%\Debug\SPIRV-Tools.lib (\r
+ echo.\r
+ echo spirv-tools Debug build failed!\r
+ set errorCode=1\r
+ )\r
+ msbuild ALL_BUILD.vcxproj /p:Platform=x64 /p:Configuration=Release\r
+ REM Check for existence of one lib, even though we should check for all results\r
+ if not exist %SPIRV_TOOLS_BUILD_DIR%\Release\SPIRV-Tools.lib (\r
+ echo.\r
+ echo spirv-tools Release build failed!\r
+ set errorCode=1\r
+ )\r
+goto:eof\r