| @echo off |
| |
| if "%1"=="/?" goto :showhelp |
| if "%1"=="-?" goto :showhelp |
| if "%1"=="-help" goto :showhelp |
| if "%1"=="--help" goto :showhelp |
| |
| setlocal ENABLEDELAYEDEXPANSION |
| |
| set X86_DBG=1 |
| set X86_REL=1 |
| set X86_TST=1 |
| set X64_DBG=1 |
| set X64_REL=1 |
| set X64_TST=1 |
| set ARM64_DBG=1 |
| set ARM64_REL=1 |
| set ARM64_TST=0 |
| set ANALYZE=-analyze |
| set FV_FLAG= |
| set CV_FLAG= |
| |
| if "%1"=="-short" ( |
| echo Building / testing fewer versions. |
| set X86_DBG=0 |
| set X86_REL=1 |
| set X86_TST=0 |
| set X64_DBG=1 |
| set X64_REL=0 |
| set X64_TST=1 |
| set ARM64_DBG=1 |
| set ARM64_REL=0 |
| set ARM64_TST=0 |
| set ANALYZE= |
| shift /1 |
| ) |
| if "%1"=="-fv" ( |
| echo Fixed version flag set for lab verification. |
| set FV_FLAG=-fv |
| shift /1 |
| ) |
| if "%1"=="-cv" ( |
| echo Setting the CLANG_VENDOR value. |
| set CV_FLAG=-cv %2 |
| shift /1 |
| shift /1 |
| ) |
| |
| if "%HLSL_SRC_DIR%"=="" ( |
| echo Missing source directory. |
| if exist %~dp0..\..\LLVMBuild.txt ( |
| set HLSL_SRC_DIR=%~dp0..\.. |
| echo Source directory deduced to be %~dp0..\.. |
| ) else ( |
| exit /b 1 |
| ) |
| ) |
| |
| if "%1"=="-buildoutdir" ( |
| echo Build output directory set to %2 |
| set HLSL_BLD_DIR=%2 |
| shift /1 |
| shift /1 |
| ) |
| |
| rem Build all supported architectures (x86, x64, ARM64) |
| call :verify_arch x86 %X86_TST% %X86_DBG% %X86_REL% |
| if errorlevel 1 ( |
| echo Failed to verify for x86. |
| exit /b 1 |
| ) |
| |
| call :verify_arch x64 %X64_TST% %X64_DBG% %X64_REL% |
| if errorlevel 1 ( |
| echo Failed to verify for x64. |
| exit /b 1 |
| ) |
| |
| rem Set path to x86 tblgen tools for the ARM64 build |
| if "%BUILD_TBLGEN_PATH%" == "" ( |
| set BUILD_TBLGEN_PATH=%HLSL_BLD_DIR%\x86\Release\bin |
| ) |
| |
| call :verify_arch arm64 %ARM64_TST% %ARM64_DBG% %ARM64_REL% |
| if errorlevel 1 ( |
| echo Failed to verify for arm64. |
| exit /b 1 |
| ) |
| |
| endlocal |
| exit /b 0 |
| |
| :showhelp |
| echo Runs the verification steps for a lab configuration. |
| echo. |
| echo Usage: |
| echo hctlabverify [-short] [-fv] [-buildOutDir dir] |
| echo. |
| echo Options: |
| echo -short builds fewer components |
| echo -fv fixes version information |
| echo -buildOutDir sets the base output directory |
| echo. |
| goto :eof |
| |
| :verify_arch |
| rem Performs a per-architecture build and test. |
| rem 1 - architecture |
| rem 2 - '1' to run tests, 0 otherwise |
| rem 3 - '1' to build debug, 0 to skip |
| rem 4 - '1' to build release, 0 to skip |
| |
| setlocal |
| |
| set HLSL_BLD_DIR=%HLSL_BLD_DIR%\%1 |
| mkdir %HLSL_BLD_DIR% |
| |
| rem Build the solution. |
| call :announce Building solution files for %1 |
| call %HLSL_SRC_DIR%\utils\hct\hctbuild.cmd -s %FV_FLAG% %CV_FLAG% -%1 |
| if errorlevel 1 ( |
| echo Failed to create solution for architecture %1 |
| exit /b 1 |
| ) |
| |
| rem Build debug. |
| if "%3"=="1" ( |
| call :announce Debug build - %1 |
| call %HLSL_SRC_DIR%\utils\hct\hctbuild.cmd -b -%1 |
| if errorlevel 1 ( |
| echo Failed to build for architecture %1 |
| exit /b 1 |
| ) |
| ); |
| |
| rem Build retail. |
| if "%4"=="1" ( |
| call :announce Retail build - %1 |
| call %HLSL_SRC_DIR%\utils\hct\hctbuild.cmd -b %ANALYZE% -rel -%1 |
| if errorlevel 1 ( |
| echo Failed to build for architecture %1 in release |
| exit /b 1 |
| ) |
| ) |
| |
| rem Run tests. |
| if "%2"=="1" ( |
| call :announce Starting tests |
| rem Pick Debug if available, retail otherwise. |
| if "%3"=="1" ( |
| call %HLSL_SRC_DIR%\utils\hct\hcttest.cmd |
| ) else ( |
| call %HLSL_SRC_DIR%\utils\hct\hcttest.cmd -rel |
| ) |
| ) else ( |
| echo Skipping tests. |
| ) |
| |
| endlocal |
| exit /b 0 |
| |
| :announce |
| echo ------------------------------------------------------------------------- |
| echo. |
| echo %* |
| echo. |
| echo ------------------------------------------------------------------------- |
| exit /b 0 |