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