4 set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"
6 rem ----- Reset values to defaults -----
8 set "ARCH=@COMPILER_BITNESS@"
11 if not ["%1"] == [""] set "VCVER=%1"
12 if not ["%2"] == [""] set "ARCH=%2"
13 if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
14 if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
15 if /I ["%3"] == ["debug"] set "CASDEB=d"
16 if /I ["%3"] == ["d"] set "CASDEB=d"
17 if /I ["%3"] == ["i"] set "CASDEB=i"
18 if /I ["%3"] == ["relwithdeb"] set "CASDEB=i"
20 rem ----- Decode VCVER variable and define related ones -----
22 rem VCFMT - "vc" followed by full version number of Visual Studio toolset
23 rem (same as VCVER without optional suffix "-uwp")
24 rem VCLIB - name of folder contining binaries
25 rem (same as VCVER except without third version in number)
26 rem VCPROP - name of required Visual Studion Workload (starting with VS 2017)
28 rem Note that for VS before 2015 (vc14) always
29 rem VCFMT=VCLIB=VCVER and VCPROP=NativeDesktop
31 rem Since VS 2017, environment variables like VS100COMNTOOLS are not defined
32 rem any more, we can only use vswhere.exe tool to find Visual Studio.
33 rem Add path to vswhere.exe
34 if /I not "%VCFMT%" == "gcc" (
35 set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
38 rem for vc10-12, interpretation is trivial
40 set VCLIB=%VCVER:~0,4%
41 set VCPROP=NativeDesktop
42 rem vc14 and later can have optional suffix "-uwp"
43 if "%VCVER:~-4%" == "-uwp" (
44 set VCFMT=%VCVER:~0,-4%
48 rem echo VCVER=%VCVER% VCFMT=%VCFMT% VCLIB=%VCLIB% VCPROP=%VCPROP%
50 rem ----- Parsing of Visual Studio platform -----
51 set "VisualStudioExpressName=VCExpress"
53 if not "%DevEnvDir%" == "" (
54 rem If DevEnvDir is already defined (e.g. in custom.bat), use that value
55 ) else if /I "%VCFMT%" == "vc9" (
56 set "DevEnvDir=%VS90COMNTOOLS%..\IDE"
57 ) else if /I "%VCFMT%" == "vc10" (
58 set "DevEnvDir=%VS100COMNTOOLS%..\IDE"
59 ) else if /I "%VCFMT%" == "vc11" (
60 set "DevEnvDir=%VS110COMNTOOLS%..\IDE"
61 rem Visual Studio Express starting from VS 2012 is called "for Windows Desktop"
62 rem and has a new name for executable - WDExpress
63 set "VisualStudioExpressName=WDExpress"
64 ) else if /I "%VCFMT%" == "vc12" (
65 set "DevEnvDir=%VS120COMNTOOLS%..\IDE"
66 set "VisualStudioExpressName=WDExpress"
67 ) else if /I "%VCFMT%" == "vc14" (
68 set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
69 ) else if /I "%VCFMT%" == "vc141" (
70 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
71 set "DevEnvDir=%%i\Common7\IDE\"
73 ) else if /I "%VCFMT%" == "vc142" (
74 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
75 set "DevEnvDir=%%i\Common7\IDE\"
77 ) else if /I "%VCFMT%" == "vc143" (
78 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
79 set "DevEnvDir=%%i\Common7\IDE\"
81 ) else if /I "%VCFMT%" == "gcc" (
84 echo Error: wrong VS identifier
88 rem ----- Parsing vcvarsall for qt samples and define PlatformToolset -----
89 if /I "%VCFMT%" == "vc9" (
90 set "VCVARS=%VS90COMNTOOLS%..\..\VC\vcvarsall.bat"
91 set "VCPlatformToolSet=v90"
92 ) else if /I "%VCFMT%" == "vc10" (
93 set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"
94 set "VCPlatformToolSet=v100"
95 ) else if /I "%VCFMT%" == "vc11" (
96 set "VCVARS=%VS110COMNTOOLS%..\..\VC\vcvarsall.bat"
97 set "VCPlatformToolSet=v110"
98 ) else if /I "%VCFMT%" == "vc12" (
99 set "VCVARS=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"
100 set "VCPlatformToolSet=v120"
101 ) else if /I "%VCFMT%" == "vc14" (
102 set "VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"
103 set "VCPlatformToolSet=v140"
104 ) else if /I "%VCFMT%" == "vc141" (
105 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
106 set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
108 set "VCPlatformToolSet=v141"
109 ) else if /I "%VCFMT%" == "vc142" (
110 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
111 set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
113 set "VCPlatformToolSet=v142"
114 ) else if /I "%VCFMT%" == "vc143" (
115 for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
116 set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
118 set "VCPlatformToolSet=v142"
119 ) else if /I "%VCFMT%" == "gcc" (
122 echo Error: first argument ^(%VCVER%^) should specify supported version of Visual C++,
123 echo one of: vc10 ^(VS 2010 SP3^), vc11 ^(VS 2012 SP3^), vc12 ^(VS 2013^) or vc14 ^(VS 2015^)
127 rem ----- For compatibility with external application using CASROOT -----
128 if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
130 rem ----- Define path to 3rdparty products -----
131 if ["%THIRDPARTY_DIR%"] == [""] set "THIRDPARTY_DIR=@3RDPARTY_DIR@"
133 if ["%ARCH%"] == ["32"] set VCARCH=x86
134 if ["%ARCH%"] == ["64"] set VCARCH=amd64
136 if /I ["%1"] == ["vc141"] set "VCVER=vc14"
137 if /I ["%1"] == ["vc142"] set "VCVER=vc14"
138 if /I ["%1"] == ["vc143"] set "VCVER=vc14"
140 if exist "%CASROOT%\custom.bat" (
141 call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
144 if not ["%QTDIR%"] == [""] (
145 set "PATH=%QTDIR%/bin;%PATH%"
146 set "QT_PLUGIN_PATH=%QTDIR%/plugins"
148 if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%"
149 if not ["%TK_DIR%"] == [""] set "PATH=%TK_DIR%;%PATH%"
150 if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%"
151 if not ["%FREEIMAGE_DIR%"] == [""] set "PATH=%FREEIMAGE_DIR%;%PATH%"
152 if not ["%EGL_DIR%"] == [""] set "PATH=%EGL_DIR%;%PATH%"
153 if not ["%GLES2_DIR%"] == [""] set "PATH=%GLES2_DIR%;%PATH%"
154 if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%"
155 if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%"
156 if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%"
157 if not ["%JEMALLOC_DIR%"] == [""] set "PATH=%JEMALLOC_DIR%;%PATH%"
158 if not ["%OPENVR_DIR%"] == [""] set "PATH=%OPENVR_DIR%;%PATH%"
160 rem ----- Set path to 3rd party and OCCT libraries -----
161 if not "%CSF_OCCTBinPath%" == "" (
162 set "PATH=%CSF_OCCTBinPath%;%PATH%"
165 if not ["%TK_DIR%"] == ["%TCL_DIR%"] (
166 if not ["%TK_DIR%"] == [""] set "TK_LIBRARY=%TK_DIR%/../lib/tk%TK_VERSION_WITH_DOT%"
167 if not ["%TCL_DIR%"] == [""] set "TCL_LIBRARY=%TCL_DIR%/../lib/tcl%TCL_VERSION_WITH_DOT%"
170 rem ----- Set envoronment variables used by OCCT -----
173 set "CSF_SHMessage=%CSF_OCCTResourcePath%\SHMessage"
174 set "CSF_MDTVTexturesDirectory=%CSF_OCCTResourcePath%\Textures"
175 set "CSF_ShadersDirectory=%CSF_OCCTResourcePath%\Shaders"
176 set "CSF_XSMessage=%CSF_OCCTResourcePath%\XSMessage"
177 set "CSF_TObjMessage=%CSF_OCCTResourcePath%\TObj"
178 set "CSF_StandardDefaults=%CSF_OCCTResourcePath%\StdResource"
179 set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
180 set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
181 set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
182 set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
183 set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
184 set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
185 set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
186 set "CSF_MIGRATION_TYPES=%CSF_OCCTResourcePath%\StdResource\MigrationSheet.txt"
188 rem ----- Draw Harness special stuff -----
189 if exist "%CSF_OCCTResourcePath%\DrawResources" (
190 set "DRAWHOME=%CSF_OCCTResourcePath%\DrawResources"
191 set "CSF_DrawPluginDefaults=%CSF_OCCTResourcePath%\DrawResources"
193 if exist "%CSF_OCCTResourcePath%\DrawResources\DrawDefault" (
194 set "DRAWDEFAULT=%CSF_OCCTResourcePath%\DrawResources\DrawDefault"