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