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