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:
10 set "SCRIPTROOT=%~dp0"
11 set "SCRIPTROOT=%SCRIPTROOT:~0,-1%"
13 rem ----- Reset values to defaults -----
19 set "HAVE_OPENCL=false"
20 set "HAVE_FREEIMAGE=false"
21 set "HAVE_GL2PS=false"
23 set "HAVE_GLES2=false"
31 rem ----- Load local settings -----
32 if exist "%~dp0custom.bat" (
33 call "%~dp0custom.bat" %1 %2 %3 %4 %5
36 if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%"
37 if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
39 rem ----- Read script arguments (override local settings) -----
40 if not ["%1"] == [""] set "VCVER=%1"
41 if not ["%2"] == [""] set "ARCH=%2"
42 if /I ["%ARCH%"] == ["win32"] set "ARCH=32"
43 if /I ["%ARCH%"] == ["win64"] set "ARCH=64"
44 if /I ["%3"] == ["debug"] set "CASDEB=d"
45 if /I ["%3"] == ["d"] set "CASDEB=d"
46 if /I ["%3"] == ["i"] set "CASDEB=i"
47 if /I ["%3"] == ["relwithdeb"] set "CASDEB=i"
49 set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%"
50 set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%"
51 set "CSF_OPT_BIN32D=%CSF_OPT_BIN32%"
52 set "CSF_OPT_BIN64D=%CSF_OPT_BIN64%"
53 set "CSF_OPT_LIB32I=%CSF_OPT_LIB32%"
54 set "CSF_OPT_LIB64I=%CSF_OPT_LIB64%"
55 set "CSF_OPT_BIN32I=%CSF_OPT_BIN32%"
56 set "CSF_OPT_BIN64I=%CSF_OPT_BIN64%"
58 rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
60 set "PRODUCTS_DEFINES="
61 if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB"
62 if ["%HAVE_OPENCL%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL"
63 if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS"
64 if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE"
65 if ["%HAVE_VTK%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK"
66 if ["%HAVE_GLES2%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GLES2"
67 if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D"
68 if ["%HAVE_TBB%"] == ["true"] set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
69 if ["%HAVE_OPENCL%"] == ["true"] set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%"
70 if ["%HAVE_GL2PS%"] == ["true"] set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%"
71 if ["%HAVE_FREEIMAGE%"] == ["true"] set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
72 if ["%HAVE_VTK%"] == ["true"] set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%"
73 if ["%HAVE_GLES2%"] == ["true"] set "CSF_DEFINES=HAVE_GLES2;%CSF_DEFINES%"
74 if ["%HAVE_D3D%"] == ["true"] set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%"
76 rem Eliminate VS warning
77 if ["%CSF_DEFINES%"] == [""] set "CSF_DEFINES=;"
79 rem ----- Optional 3rd-parties should be enabled by HAVE macros -----
80 if not ["%PRODUCTS_DEFINES%"] == [""] set "CSF_OPT_CMPL=%CSF_OPT_CMPL% %PRODUCTS_DEFINES%"
82 rem ----- Colect 3rd-parties additional include paths into compiler options -----
83 for %%a in ("%CSF_OPT_INC:;=";"%") do (
85 if not ["%%~a"] == [""] call :concatCmplInc %%~a
88 rem ----- Colect 3rd-parties additional library paths (32-bit) into linker options -----
90 for %%a in ("%CSF_OPT_LIB32:;=";"%") do (
92 if not ["%%~a"] == [""] call :concatLib32 %%~a
95 rem ----- Colect 3rd-parties additional library paths (64-bit) into linker options -----
97 for %%a in ("%CSF_OPT_LIB64:;=";"%") do (
99 if not ["%%~a"] == [""] call :concatLib64 %%~a
102 set "CSF_OPT_LNK32=%CSF_OPT_LNK32% %OPT_LIB32%"
103 set "CSF_OPT_LNK64=%CSF_OPT_LNK64% %OPT_LIB64%"
104 set "CSF_OPT_LNK32D=%CSF_OPT_LNK32D% %OPT_LIB32%"
105 set "CSF_OPT_LNK64D=%CSF_OPT_LNK64D% %OPT_LIB64%"
106 set "CSF_OPT_LNK32I=%CSF_OPT_LNK32I% %OPT_LIB32%"
107 set "CSF_OPT_LNK64I=%CSF_OPT_LNK64I% %OPT_LIB64%"
109 rem ----- Default paths to sub-folders (can be different in install env) -----
110 if "%CSF_OCCTIncludePath%" == "" set "CSF_OCCTIncludePath=%CASROOT%\inc"
111 if "%CSF_OCCTResourcePath%" == "" set "CSF_OCCTResourcePath=%CASROOT%\src"
112 if "%CSF_OCCTSamplesPath%" == "" set "CSF_OCCTSamplesPath=%CASROOT%\samples"
113 if "%CSF_OCCTDataPath%" == "" set "CSF_OCCTDataPath=%CASROOT%\data"
114 if "%CSF_OCCTTestsPath%" == "" set "CSF_OCCTTestsPath=%CASROOT%\tests"
115 if "%CSF_OCCTBinPath%" == "" set "CSF_OCCTBinPath=%CASROOT%\win%ARCH%\%VCVER%\bin%CASDEB%"
116 if "%CSF_OCCTLibPath%" == "" set "CSF_OCCTLibPath=%CASROOT%\win%ARCH%\%VCVER%\lib%CASDEB%"
118 rem ----- Set path to 3rd party and OCCT libraries -----
119 set "PATH=%CSF_OCCTBinPath%;%PATH%"
120 if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32%;%PATH%"
121 if ["%CASDEB%"] == [""] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64%;%PATH%"
122 if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32D%;%PATH%"
123 if ["%CASDEB%"] == ["d"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64D%;%PATH%"
124 if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["32"] set "PATH=%CSF_OPT_BIN32I%;%PATH%"
125 if ["%CASDEB%"] == ["i"] if ["%ARCH%"] == ["64"] set "PATH=%CSF_OPT_BIN64I%;%PATH%"
127 rem ----- Set envoronment variables used by OCCT -----
130 set "CSF_SHMessage=%CSF_OCCTResourcePath%\SHMessage"
131 set "CSF_MDTVTexturesDirectory=%CSF_OCCTResourcePath%\Textures"
132 set "CSF_ShadersDirectory=%CSF_OCCTResourcePath%\Shaders"
133 set "CSF_XSMessage=%CSF_OCCTResourcePath%\XSMessage"
134 set "CSF_TObjMessage=%CSF_OCCTResourcePath%\TObj"
135 set "CSF_StandardDefaults=%CSF_OCCTResourcePath%\StdResource"
136 set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource"
137 set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource"
138 set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource"
139 set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource"
140 set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
141 set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource"
142 set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource"
143 set "CSF_MIGRATION_TYPES=%CSF_OCCTResourcePath%\StdResource\MigrationSheet.txt"
145 rem Draw Harness special stuff
146 if exist "%CSF_OCCTResourcePath%\DrawResources\DrawDefault" (
147 set "DRAWDEFAULT=%CSF_OCCTResourcePath%\DrawResources\DrawDefault"
149 if exist "%CSF_OCCTResourcePath%\DrawResources" (
150 set "DRAWHOME=%CSF_OCCTResourcePath%\DrawResources"
151 set "CSF_DrawPluginDefaults=%DRAWHOME%"
156 set "CSF_OPT_CMPL=%CSF_OPT_CMPL% -I%1"
160 rem Compiler options for Code::Blocks: -L for gcc/mingw and /LIBPATH for msvc
161 rem set "OPT_LIB32=%OPT_LIB32% /LIBPATH:%1"
162 set "OPT_LIB32=%OPT_LIB32% -L%1"
166 rem Compiler options for Code::Blocks: -L for gcc/mingw and /LIBPATH for msvc
167 rem set "OPT_LIB64=%OPT_LIB64% /LIBPATH:%1"
168 set "OPT_LIB64=%OPT_LIB64% -L%1"