910970ab |
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 | set "CASROOT=__CASROOT__" |
13 | if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%" |
14 | if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%" |
15 | |
16 | rem ----- Reset values to defaults ----- |
17 | set "CASDEB=" |
18 | set "VCVER=vc8" |
19 | set "ARCH=32" |
20 | set "VCVARS=" |
21 | set "HAVE_TBB=false" |
22 | set "HAVE_OPENCL=false" |
23 | set "HAVE_FREEIMAGE=false" |
24 | set "HAVE_GL2PS=false" |
910970ab |
25 | set "HAVE_VTK=false" |
f60111dc |
26 | set "HAVE_D3D=false" |
910970ab |
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 | rem ----- Load local settings ----- |
34 | if exist "%~dp0custom.bat" ( |
35 | call "%~dp0custom.bat" %1 %2 %3 %4 %5 |
36 | ) |
37 | |
38 | rem ----- Read script arguments (override local settings) ----- |
39 | if not ["%1"] == [""] set "VCVER=%1" |
40 | if not ["%2"] == [""] set "ARCH=%2" |
41 | if /I ["%ARCH%"] == ["win32"] set "ARCH=32" |
42 | if /I ["%ARCH%"] == ["win64"] set "ARCH=64" |
43 | if /I ["%3"] == ["debug"] set "CASDEB=d" |
44 | if /I ["%3"] == ["d"] set "CASDEB=d" |
316d77d9 |
45 | if /I ["%3"] == ["i"] set "CASDEB=i" |
46 | if /I ["%3"] == ["relwithdeb"] set "CASDEB=i" |
910970ab |
47 | |
48 | set "CSF_OPT_INC=%CSF_OPT_INC%;%CASROOT%\inc" |
49 | set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\libd" |
50 | set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\libd" |
51 | set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bind" |
52 | set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bind" |
316d77d9 |
53 | set "CSF_OPT_LIB32I=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\libi" |
54 | set "CSF_OPT_LIB64I=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\libi" |
55 | set "CSF_OPT_BIN32I=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bini" |
56 | set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bini" |
910970ab |
57 | set "CSF_OPT_LIB32=%CSF_OPT_LIB32%;%CASROOT%\win32\%VCVER%\lib" |
58 | set "CSF_OPT_LIB64=%CSF_OPT_LIB64%;%CASROOT%\win64\%VCVER%\lib" |
59 | set "CSF_OPT_BIN32=%CSF_OPT_BIN32%;%CASROOT%\win32\%VCVER%\bin" |
60 | set "CSF_OPT_BIN64=%CSF_OPT_BIN64%;%CASROOT%\win64\%VCVER%\bin" |
61 | |
62 | rem ----- Optional 3rd-parties should be enabled by HAVE macros ----- |
63 | set "CSF_OPT_CMPL=" |
64 | set "PRODUCTS_DEFINES=" |
65 | if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB" |
66 | if ["%HAVE_OPENCL%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL" |
67 | if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS" |
68 | if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" |
69 | if ["%HAVE_VTK%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK" |
f60111dc |
70 | if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D" |
910970ab |
71 | if ["%HAVE_TBB%"] == ["true"] set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%" |
72 | if ["%HAVE_OPENCL%"] == ["true"] set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%" |
73 | if ["%HAVE_GL2PS%"] == ["true"] set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%" |
74 | if ["%HAVE_FREEIMAGE%"] == ["true"] set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%" |
75 | if ["%HAVE_VTK%"] == ["true"] set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%" |
f60111dc |
76 | if ["%HAVE_D3D%"] == ["true"] set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%" |
910970ab |
77 | |
78 | rem Eliminate VS warning |
79 | if ["%CSF_DEFINES%"] == [""] set "CSF_DEFINES=;" |
80 | |
81 | rem ----- Optional 3rd-parties should be enabled by HAVE macros ----- |
82 | if not ["%PRODUCTS_DEFINES%"] == [""] set "CSF_OPT_CMPL=%CSF_OPT_CMPL% %PRODUCTS_DEFINES%" |
83 | |
84 | rem ----- Colect 3rd-parties additional include paths into compiler options ----- |
85 | for %%a in ("%CSF_OPT_INC:;=";"%") do ( |
86 | set "anItem=%%~a" |
87 | if not ["%%~a"] == [""] call :concatCmplInc %%~a |
88 | ) |
89 | |
90 | rem ----- Colect 3rd-parties additional library paths (32-bit) into linker options ----- |
91 | set "OPT_LIB32=" |
92 | for %%a in ("%CSF_OPT_LIB32:;=";"%") do ( |
93 | set "anItem=%%~a" |
94 | if not ["%%~a"] == [""] call :concatLib32 %%~a |
95 | ) |
96 | |
97 | rem ----- Colect 3rd-parties additional library paths (64-bit) into linker options ----- |
98 | set "OPT_LIB64=" |
99 | for %%a in ("%CSF_OPT_LIB64:;=";"%") do ( |
100 | set "anItem=%%~a" |
101 | if not ["%%~a"] == [""] call :concatLib64 %%~a |
102 | ) |
103 | |
910970ab |
104 | set "CSF_OPT_LNK32=%CSF_OPT_LNK32% %OPT_LIB32%" |
910970ab |
105 | set "CSF_OPT_LNK64=%CSF_OPT_LNK64% %OPT_LIB64%" |
316d77d9 |
106 | set "CSF_OPT_LNK32D=%CSF_OPT_LNK32D% %OPT_LIB32%" |
910970ab |
107 | set "CSF_OPT_LNK64D=%CSF_OPT_LNK64D% %OPT_LIB64%" |
316d77d9 |
108 | set "CSF_OPT_LNK32I=%CSF_OPT_LNK32I% %OPT_LIB32%" |
109 | set "CSF_OPT_LNK64I=%CSF_OPT_LNK64I% %OPT_LIB64%" |
910970ab |
110 | |
111 | set "CASBIN=win%ARCH%\%VCVER%" |
112 | |
113 | rem ----- Set path to 3rd party and OCCT libraries ----- |
114 | set "PATH=%SCRIPTROOT%\%CASBIN%\bin%CASDEB%;%PATH%" |
316d77d9 |
115 | if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32%;%PATH%" |
116 | if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64%;%PATH%" |
117 | if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32D%;%PATH%" |
118 | if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64D%;%PATH%" |
119 | |
120 | if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32I%;%PATH%" |
121 | if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64I%;%PATH%" |
910970ab |
122 | |
123 | rem ----- Set envoronment variables used by OCCT ----- |
124 | set CSF_LANGUAGE=us |
125 | set MMGT_CLEAR=1 |
126 | set CSF_EXCEPTION_PROMPT=1 |
127 | set "CSF_SHMessage=%CASROOT%\src\SHMessage" |
128 | set "CSF_MDTVTexturesDirectory=%CASROOT%\src\Textures" |
129 | set "CSF_ShadersDirectory=%CASROOT%\src\Shaders" |
130 | set "CSF_XSMessage=%CASROOT%\src\XSMessage" |
131 | set "CSF_TObjMessage=%CASROOT%\src\TObj" |
132 | set "CSF_StandardDefaults=%CASROOT%\src\StdResource" |
133 | set "CSF_PluginDefaults=%CASROOT%\src\StdResource" |
134 | set "CSF_XCAFDefaults=%CASROOT%\src\StdResource" |
135 | set "CSF_TObjDefaults=%CASROOT%\src\StdResource" |
136 | set "CSF_StandardLiteDefaults=%CASROOT%\src\StdResource" |
137 | set "CSF_UnitsLexicon=%CASROOT%\src\UnitsAPI\Lexi_Expr.dat" |
138 | set "CSF_UnitsDefinition=%CASROOT%\src\UnitsAPI\Units.dat" |
139 | set "CSF_IGESDefaults=%CASROOT%\src\XSTEPResource" |
140 | set "CSF_STEPDefaults=%CASROOT%\src\XSTEPResource" |
141 | set "CSF_XmlOcafResource=%CASROOT%\src\XmlOcafResource" |
142 | set "CSF_MIGRATION_TYPES=%CASROOT%\src\StdResource\MigrationSheet.txt" |
143 | |
144 | rem Draw Harness special stuff |
145 | if exist "%CASROOT%\src\DrawResources" ( |
146 | set "DRAWHOME=%CASROOT%\src\DrawResources" |
147 | set "CSF_DrawPluginDefaults=%DRAWHOME%" |
148 | ) |
149 | if exist "%SCRIPTROOT%\src\DrawResourcesProducts" ( |
150 | set "CSF_DrawPluginProductsDefaults=%SCRIPTROOT%\src\DrawResourcesProducts" |
151 | ) |
152 | goto :eof |
153 | |
154 | :concatCmplInc |
155 | set "CSF_OPT_CMPL=%CSF_OPT_CMPL% -I%1" |
156 | goto :eof |
157 | |
158 | :concatLib32 |
159 | set "OPT_LIB32=%OPT_LIB32% /LIBPATH:%1" |
160 | goto :eof |
161 | |
162 | :concatLib64 |
163 | set "OPT_LIB64=%OPT_LIB64% /LIBPATH:%1" |
164 | goto :eof |