make.bat: Preliminary Visual Studio 2019 support.
[blender.git] / build_files / windows / detect_msvc_vswhere.cmd
1 if NOT "%verbose%" == "" (
2         echo Detecting msvc %BUILD_VS_YEAR%
3 )
4
5 set ProgramFilesX86=%ProgramFiles(x86)%
6 if not exist "%ProgramFilesX86%" set ProgramFilesX86=%ProgramFiles%
7
8 set vs_where=%ProgramFilesX86%\Microsoft Visual Studio\Installer\vswhere.exe
9 if not exist "%vs_where%" (
10         if NOT "%verbose%" == "" (
11                 echo Visual Studio %BUILD_VS_YEAR% is not detected
12         )
13         goto FAIL
14 )
15
16 if NOT "%verbose%" == "" (
17                 echo "%vs_where%" -latest %VSWHERE_ARGS% -version ^[%BUILD_VS_VER%.0^,%BUILD_VS_VER%.99^) -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64
18         )
19
20 for /f "usebackq tokens=1* delims=: " %%i in (`"%vs_where%" -latest -version ^[%BUILD_VS_VER%.0^,%BUILD_VS_VER%.99^) %VSWHERE_ARGS% -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64`) do (
21         if /i "%%i"=="installationPath" set VS_InstallDir=%%j
22 )
23
24 if NOT "%verbose%" == "" (
25         echo VS_Installdir="%VS_InstallDir%"
26 )
27
28 if "%VS_InstallDir%"=="" (
29         if NOT "%verbose%" == "" (
30                 echo Visual Studio is detected but the "Desktop development with C++" workload has not been instlled
31                 goto FAIL
32         )
33 )
34
35 set VCVARS=%VS_InstallDir%\VC\Auxiliary\Build\vcvarsall.bat
36 if exist "%VCVARS%" (
37         call "%VCVARS%" %BUILD_ARCH%
38 ) else (
39         if NOT "%verbose%" == "" (
40                 echo "%VCVARS%" not found
41         )
42         goto FAIL
43 )
44
45 rem try msbuild
46 msbuild /version > NUL 
47 if errorlevel 1 (
48         if NOT "%verbose%" == "" (
49                 echo Visual Studio %BUILD_VS_YEAR% msbuild not found
50         )
51         goto FAIL
52 )
53
54 if NOT "%verbose%" == "" (
55                 echo Visual Studio %BUILD_VS_YEAR% msbuild found 
56 )
57
58 REM try the c++ compiler
59 cl 2> NUL 1>&2
60 if errorlevel 1 (
61         if NOT "%verbose%" == "" (
62                 echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found
63         )
64         goto FAIL
65 )
66
67 if NOT "%verbose%" == "" (
68                 echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found
69 )
70
71 if NOT "%verbose%" == "" (
72         echo Visual Studio %BUILD_VS_YEAR% is detected successfully  
73 )
74 goto EOF
75
76 :FAIL
77 exit /b 1 
78
79 :EOF