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