blob: 54dc8e1ae486cd53e27e4649595ff1d75c606d82 [file] [edit]
@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 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 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 Create the solutions per architecture.
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 Don't run tests for arm
rem Disable until the work goes in to pick up tablegen for x86/x64.
rem call :verify_arch arm 0
if errorlevel 1 (
echo Failed to verify for arm.
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 %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 %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 %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" (
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