0029520: Visualization - drop deprecated V3d_View::Export() functionality and depende...
[occt.git] / adm / templates / env.bat
1 @echo off
2
3 rem Use:
4 rem - first argument specifies version of Visual Studio (vc8, vc9, or vc10),
5 rem - second argument specifies architecture (win32 or win64),
6 rem - third argument specifies build mode (Debug or Release)
7 rem Default options are:
8 rem   vc8 win32 Release
9
10 set "SCRIPTROOT=%~dp0"
11 set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"
12
13 rem ----- Reset values to defaults -----
14 set "CASDEB="
15 set "VCVER=vc10"
16 set "ARCH=64"
17 set "VCVARS="
18 set "HAVE_TBB=false"
19 set "HAVE_OPENCL=false"
20 set "HAVE_FREEIMAGE=false"
21 set "HAVE_FFMPEG=false"
22 set "HAVE_VTK=false"
23 set "HAVE_GLES2=false"
24 set "HAVE_D3D=false"
25 set "HAVE_ZLIB=false"
26 set "HAVE_LIBLZMA=false"
27 set "CSF_OPT_INC="
28 set "CSF_OPT_LIB32="
29 set "CSF_OPT_LIB64="
30 set "CSF_OPT_BIN32="
31 set "CSF_OPT_BIN64="
32
33 if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%"
34 if     ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
35
36 rem ----- Load local settings -----
37 if exist "%CASROOT%\custom.bat" (
38   call "%CASROOT%\custom.bat" %1 %2 %3 %4 %5
39 )
40
41 rem ----- Read script arguments (override local settings) -----
42 if not ["%1"]    == [""]      set "VCVER=%1"
43 if not ["%2"]    == [""]      set "ARCH=%2"
44 if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
45 if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
46 if /I ["%3"]     == ["debug"] set "CASDEB=d"
47 if /I ["%3"]     == ["d"]     set "CASDEB=d"
48 if /I ["%3"]     == ["i"]     set "CASDEB=i"
49 if /I ["%3"]     == ["relwithdeb"] set "CASDEB=i"
50
51 rem Decode VCVER variable and define related ones:
52 rem
53 rem VCFMT - "vc" followed by full version number of Visual Studio toolset
54 rem         (same as VCVER without optional suffix "-uwp")
55 rem VCLIB - name of folder contining binaries
56 rem         (same as VCVER except without third version in number)
57 rem VCPROP - name of required Visual Studion Workload (starting with VS 2017)
58 rem
59 rem Note that for VS before 2015 (vc14) always
60 rem VCFMT=VCLIB=VCVER and VCPROP=NativeDesktop
61
62 rem Since VS 2017, environment variables like VS100COMNTOOLS are not defined 
63 rem any more, we can only use vswhere.exe tool to find Visual Studio.
64 rem Add path to vswhere.exe
65 set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
66
67 rem for vc10-12, interpretation is trivial
68 set VCFMT=%VCVER%
69 set VCLIB=%VCVER:~0,4%
70 set VCPROP=NativeDesktop
71 rem vc14 and later can have optional suffix "-uwp"
72 if "%VCVER:~-4%" == "-uwp" (
73   set VCFMT=%VCVER:~0,-4%
74   set VCLIB=%VCLIB%-uwp
75   set VCPROP=Universal
76 )
77 rem echo VCVER=%VCVER% VCFMT=%VCFMT% VCLIB=%VCLIB% VCPROP=%VCPROP%
78
79 rem ----- Parsing of Visual Studio platform -----
80 set "VisualStudioExpressName=VCExpress"
81
82 if not "%DevEnvDir%" == "" (
83   rem If DevEnvDir is already defined (e.g. in custom.bat), use that value
84 ) else if /I "%VCFMT%" == "vc9" (
85   set "DevEnvDir=%VS90COMNTOOLS%..\IDE"
86 ) else if /I "%VCFMT%" == "vc10" (
87   set "DevEnvDir=%VS100COMNTOOLS%..\IDE"
88 ) else if /I "%VCFMT%" == "vc11" (
89   set "DevEnvDir=%VS110COMNTOOLS%..\IDE"
90   rem Visual Studio Express starting from VS 2012 is called "for Windows Desktop"
91   rem and has a new name for executable - WDExpress
92   set "VisualStudioExpressName=WDExpress"
93 ) else if /I "%VCFMT%" == "vc12" (
94   set "DevEnvDir=%VS120COMNTOOLS%..\IDE"
95   set "VisualStudioExpressName=WDExpress"
96 ) else if /I "%VCFMT%" == "vc14" (
97   set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
98 ) else if /I "%VCFMT%" == "vc141" (
99   for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
100     set "DevEnvDir=%%i\Common7\IDE\"
101   )
102 ) else if /I "%VCFMT%" == "gcc" (
103   rem MinGW
104 ) else (
105   echo Error: first argument ^(%VCVER%^) should specify supported version of Visual C++, 
106   echo one of: 
107   echo vc9   = VS 2008 ^(SP1^)
108   echo vc10  = VS 2010 ^(SP3^)
109   echo vc11  = VS 2012 ^(SP3^)
110   echo vc12  = VS 2013 ^(SP3^)
111   echo vc14  = VS 2015
112   echo vc141 = VS 2017
113   exit /B
114 )
115
116 rem ----- Parsing vcvarsall for qt samples and define PlatformToolset -----
117 if /I "%VCFMT%" == "vc9" (
118   set "VCVARS=%VS90COMNTOOLS%..\..\VC\vcvarsall.bat"
119   set "VCPlatformToolSet=v90"
120 ) else if /I "%VCFMT%" == "vc10" (
121   set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"
122   set "VCPlatformToolSet=v100"
123 ) else if /I "%VCFMT%" == "vc11" (
124   set "VCVARS=%VS110COMNTOOLS%..\..\VC\vcvarsall.bat"
125   set "VCPlatformToolSet=v110"
126 ) else if /I "%VCFMT%" == "vc12" (
127   set "VCVARS=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"
128   set "VCPlatformToolSet=v120"
129 ) else if /I "%VCFMT%" == "vc14" (
130   set "VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"
131   set "VCPlatformToolSet=v140"
132 ) else if /I "%VCFMT%" == "vc141" (
133   for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
134     set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
135   )
136   set "VCPlatformToolSet=v141"
137 ) else if /I "%VCFMT%" == "gcc" (
138   rem MinGW
139 ) else (
140   echo Error: wrong VS identifier
141   exit /B
142 )
143
144 set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%"
145 set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%"
146 set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%"
147 set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%"
148 set "CSF_OPT_LIB32I=%CSF_OPT_LIB32%"
149 set "CSF_OPT_LIB64I=%CSF_OPT_LIB64%"
150 set "CSF_OPT_BIN32I=%CSF_OPT_BIN32%"
151 set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%"
152
153 rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
154 set "CSF_OPT_CMPL="
155 set "PRODUCTS_DEFINES="
156 if ["%HAVE_TBB%"]       == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB"       & set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
157 if ["%HAVE_OPENCL%"]    == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL"    & set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%"
158 if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" & set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
159 if ["%HAVE_FFMPEG%"]    == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FFMPEG"    & set "CSF_DEFINES=HAVE_FFMPEG;%CSF_DEFINES%"
160 if ["%HAVE_VTK%"]       == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK"       & set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%"
161 if ["%HAVE_GLES2%"]     == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GLES2"     & set "CSF_DEFINES=HAVE_GLES2;%CSF_DEFINES%"
162 if ["%HAVE_D3D%"]       == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D"       & set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%"
163 if ["%HAVE_ZLIB%"]      == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_ZLIB"      & set "CSF_DEFINES=HAVE_ZLIB;%CSF_DEFINES%"
164 if ["%HAVE_LIBLZMA%"]   == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_LIBLZMA"   & set "CSF_DEFINES=HAVE_LIBLZMA;%CSF_DEFINES%"
165
166 rem Eliminate VS warning
167 if ["%CSF_DEFINES%"]  == [""] set "CSF_DEFINES=;"
168
169 rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
170 if not ["%PRODUCTS_DEFINES%"] == [""] set "CSF_OPT_CMPL=%CSF_OPT_CMPL% %PRODUCTS_DEFINES%"
171
172 rem ----- Colect 3rd-parties additional include paths into compiler options -----
173 for %%a in ("%CSF_OPT_INC:;=";"%") do (
174   set "anItem=%%~a"
175   if not ["%%~a"] == [""] call :concatCmplInc %%~a
176 )
177
178 rem ----- Colect 3rd-parties additional library paths (32-bit) into linker options -----
179 set "OPT_LIB32="
180 for %%a in ("%CSF_OPT_LIB32:;=";"%") do (
181   set "anItem=%%~a"
182   if not ["%%~a"] == [""] call :concatLib32 %%~a
183 )
184
185 rem ----- Colect 3rd-parties additional library paths (64-bit) into linker options -----
186 set "OPT_LIB64="
187 for %%a in ("%CSF_OPT_LIB64:;=";"%") do (
188   set "anItem=%%~a"
189   if not ["%%~a"] == [""] call :concatLib64 %%~a
190 )
191
192 set "CSF_OPT_LNK32=%CSF_OPT_LNK32% %OPT_LIB32%"
193 set "CSF_OPT_LNK64=%CSF_OPT_LNK64% %OPT_LIB64%"
194 set "CSF_OPT_LNK32D=%CSF_OPT_LNK32D% %OPT_LIB32%"
195 set "CSF_OPT_LNK64D=%CSF_OPT_LNK64D% %OPT_LIB64%"
196 set "CSF_OPT_LNK32I=%CSF_OPT_LNK32I% %OPT_LIB32%"
197 set "CSF_OPT_LNK64I=%CSF_OPT_LNK64I% %OPT_LIB64%"
198
199 rem ----- Default paths to sub-folders (can be different in install env) -----
200 if "%CSF_OCCTIncludePath%" == "" set "CSF_OCCTIncludePath=%CASROOT%\inc"
201 if "%CSF_OCCTResourcePath%" == "" set "CSF_OCCTResourcePath=%CASROOT%\src"
202 if "%CSF_OCCTSamplesPath%" == "" set "CSF_OCCTSamplesPath=%CASROOT%\samples"
203 if "%CSF_OCCTDataPath%" == "" set "CSF_OCCTDataPath=%CASROOT%\data"
204 if "%CSF_OCCTTestsPath%" == "" set "CSF_OCCTTestsPath=%CASROOT%\tests"
205 if "%CSF_OCCTBinPath%" == "" set "CSF_OCCTBinPath=%CASROOT%\win%ARCH%\%VCLIB%\bin%CASDEB%"
206 if "%CSF_OCCTLibPath%" == "" set "CSF_OCCTLibPath=%CASROOT%\win%ARCH%\%VCLIB%\lib%CASDEB%"
207
208 rem ----- Set path to 3rd party and OCCT libraries -----
209 set "PATH=%CSF_OCCTBinPath%;%PATH%"
210 if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32%;%PATH%"
211 if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64%;%PATH%"
212 if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32D%;%PATH%"
213 if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64D%;%PATH%"
214 if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32I%;%PATH%"
215 if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64I%;%PATH%"
216
217 rem ----- Set envoronment variables used by OCCT -----
218 set CSF_LANGUAGE=us
219 set MMGT_CLEAR=1
220 set "CSF_SHMessage=%CSF_OCCTResourcePath%\SHMessage"
221 set "CSF_MDTVTexturesDirectory=%CSF_OCCTResourcePath%\Textures"
222 set "CSF_ShadersDirectory=%CSF_OCCTResourcePath%\Shaders"
223 set "CSF_XSMessage=%CSF_OCCTResourcePath%\XSMessage"
224 set "CSF_TObjMessage=%CSF_OCCTResourcePath%\TObj"
225 set "CSF_StandardDefaults=%CSF_OCCTResourcePath%\StdResource"
226 set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
227 set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
228 set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
229 set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
230 set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
231 set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
232 set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
233 set "CSF_MIGRATION_TYPES=%CSF_OCCTResourcePath%\StdResource\MigrationSheet.txt"
234
235 rem Draw Harness special stuff
236 if exist "%CSF_OCCTResourcePath%\DrawResources\DrawDefault" (
237   set "DRAWDEFAULT=%CSF_OCCTResourcePath%\DrawResources\DrawDefault"
238 )
239 if exist "%CSF_OCCTResourcePath%\DrawResources" (
240   set "DRAWHOME=%CSF_OCCTResourcePath%\DrawResources"
241   set "CSF_DrawPluginDefaults=%DRAWHOME%"
242 )
243 goto :eof
244
245 :concatCmplInc
246 set "CSF_OPT_CMPL=%CSF_OPT_CMPL% -I%1"
247 goto :eof
248
249 :concatLib32
250 rem Compiler options for Code::Blocks: -L for gcc/mingw and /LIBPATH for msvc
251 rem set "OPT_LIB32=%OPT_LIB32% /LIBPATH:%1"
252 set "OPT_LIB32=%OPT_LIB32% -L%1"
253 goto :eof
254
255 :concatLib64
256 rem Compiler options for Code::Blocks: -L for gcc/mingw and /LIBPATH for msvc
257 rem set "OPT_LIB64=%OPT_LIB64% /LIBPATH:%1"
258 set "OPT_LIB64=%OPT_LIB64% -L%1"
259 goto :eof