blob: 4529fa02eb2bb6ec9003119287760f91b4bbd45e [file] [log] [blame]
K.Takatac3430cb2022-09-21 11:56:41 +01001@echo off
2rem To be used on MS-Windows for Visual C++ 2017 or later.
3rem See INSTALLpc.txt for information.
4rem
5rem Usage:
6rem For x86 builds run this with "x86" option:
7rem msvc-latest x86
8rem For x64 builds run this with "x86_amd64" option or "x64" option:
9rem msvc-latest x86_amd64
10rem msvc-latest x64
11rem
12rem Optional environment variables:
13rem VSWHERE:
14rem Full path to vswhere.exe.
15rem VSVEROPT:
16rem Option to search specific version of Visual Studio.
17rem Default: -latest
18rem To search VS2017:
19rem set "VSVEROPT=-version [15.0^,16.0^)"
20rem To search VS2019:
21rem set "VSVEROPT=-version [16.0^,17.0^)"
22rem To search VS2022:
23rem set "VSVEROPT=-version [17.0^,18.0^)"
24
25if "%VSWHERE%"=="" (
26 set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
27 set VSWHERE_SET=yes
28)
29if not exist "%VSWHERE%" (
30 echo Error: vswhere not found.
31 set VSWHERE=
32 set VSWHERE_SET=
33 exit /b 1
34)
35
36if "%VSVEROPT%"=="" (
37 set VSVEROPT=-latest
38 set VSVEROPT_SET=yes
39)
40
41rem Search Visual Studio Community, Professional or above.
42for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" %VSVEROPT% -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
43 set InstallDir=%%i
44)
45if exist "%InstallDir%\VC\Auxiliary\Build\vcvarsall.bat" (
46 call "%InstallDir%\VC\Auxiliary\Build\vcvarsall.bat" %*
47 goto done
48)
49
50rem Search Visual Studio 2017 Express.
51rem (Visual Studio 2017 Express uses different component IDs.)
52for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" %VSVEROPT% -products Microsoft.VisualStudio.Product.WDExpress -property installationPath`) do (
53 set InstallDir=%%i
54)
55if exist "%InstallDir%\VC\Auxiliary\Build\vcvarsall.bat" (
56 call "%InstallDir%\VC\Auxiliary\Build\vcvarsall.bat" %*
57) else (
58 echo Error: vcvarsall.bat not found.
59 rem Set ERRORLEVEL to 1.
60 call
61)
62
63:done
64if "%VSWHERE_SET%"=="yes" (
65 set VSWHERE=
66 set VSWHERE_SET=
67)
68if "%VSVEROPT_SET%"=="yes" (
69 set VSVEROPT=
70 set VSVEROPT_SET=
71)
72set InstallDir=