| 1 | echo off |
| 2 | |
| 3 | set "SCRIPTROOT=%~dp0" |
| 4 | set "SCRIPTROOT=%SCRIPTROOT:~0,-1%" |
| 5 | |
| 6 | rem ----- Reset values to defaults ----- |
| 7 | set "VCVER=@COMPILER@" |
| 8 | set "ARCH=@COMPILER_BITNESS@" |
| 9 | set "CASDEB=" |
| 10 | |
| 11 | if not ["%1"] == [""] set "VCVER=%1" |
| 12 | if not ["%2"] == [""] set "ARCH=%2" |
| 13 | if /I ["%ARCH%"] == ["win32"] set "ARCH=32" |
| 14 | if /I ["%ARCH%"] == ["win64"] set "ARCH=64" |
| 15 | if /I ["%3"] == ["debug"] set "CASDEB=d" |
| 16 | if /I ["%3"] == ["d"] set "CASDEB=d" |
| 17 | if /I ["%3"] == ["i"] set "CASDEB=i" |
| 18 | if /I ["%3"] == ["relwithdeb"] set "CASDEB=i" |
| 19 | |
| 20 | rem ----- Decode VCVER variable and define related ones ----- |
| 21 | rem |
| 22 | rem VCFMT - "vc" followed by full version number of Visual Studio toolset |
| 23 | rem (same as VCVER without optional suffix "-uwp") |
| 24 | rem VCLIB - name of folder contining binaries |
| 25 | rem (same as VCVER except without third version in number) |
| 26 | rem VCPROP - name of required Visual Studion Workload (starting with VS 2017) |
| 27 | rem |
| 28 | rem Note that for VS before 2015 (vc14) always |
| 29 | rem VCFMT=VCLIB=VCVER and VCPROP=NativeDesktop |
| 30 | |
| 31 | rem Since VS 2017, environment variables like VS100COMNTOOLS are not defined |
| 32 | rem any more, we can only use vswhere.exe tool to find Visual Studio. |
| 33 | rem Add path to vswhere.exe |
| 34 | if /I not "%VCFMT%" == "gcc" ( |
| 35 | set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer" |
| 36 | ) |
| 37 | |
| 38 | rem for vc10-12, interpretation is trivial |
| 39 | set VCFMT=%VCVER% |
| 40 | set VCLIB=%VCVER:~0,4% |
| 41 | set VCPROP=NativeDesktop |
| 42 | rem vc14 and later can have optional suffix "-uwp" |
| 43 | if "%VCVER:~-4%" == "-uwp" ( |
| 44 | set VCFMT=%VCVER:~0,-4% |
| 45 | set VCLIB=%VCLIB%-uwp |
| 46 | set VCPROP=Universal |
| 47 | ) |
| 48 | rem echo VCVER=%VCVER% VCFMT=%VCFMT% VCLIB=%VCLIB% VCPROP=%VCPROP% |
| 49 | |
| 50 | rem ----- Parsing of Visual Studio platform ----- |
| 51 | set "VisualStudioExpressName=VCExpress" |
| 52 | |
| 53 | if not "%DevEnvDir%" == "" ( |
| 54 | rem If DevEnvDir is already defined (e.g. in custom.bat), use that value |
| 55 | ) else if /I "%VCFMT%" == "vc9" ( |
| 56 | set "DevEnvDir=%VS90COMNTOOLS%..\IDE" |
| 57 | ) else if /I "%VCFMT%" == "vc10" ( |
| 58 | set "DevEnvDir=%VS100COMNTOOLS%..\IDE" |
| 59 | ) else if /I "%VCFMT%" == "vc11" ( |
| 60 | set "DevEnvDir=%VS110COMNTOOLS%..\IDE" |
| 61 | rem Visual Studio Express starting from VS 2012 is called "for Windows Desktop" |
| 62 | rem and has a new name for executable - WDExpress |
| 63 | set "VisualStudioExpressName=WDExpress" |
| 64 | ) else if /I "%VCFMT%" == "vc12" ( |
| 65 | set "DevEnvDir=%VS120COMNTOOLS%..\IDE" |
| 66 | set "VisualStudioExpressName=WDExpress" |
| 67 | ) else if /I "%VCFMT%" == "vc14" ( |
| 68 | set "DevEnvDir=%VS140COMNTOOLS%..\IDE" |
| 69 | ) else if /I "%VCFMT%" == "vc141" ( |
| 70 | for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do ( |
| 71 | set "DevEnvDir=%%i\Common7\IDE\" |
| 72 | ) |
| 73 | ) else if /I "%VCFMT%" == "gcc" ( |
| 74 | rem MinGW |
| 75 | ) else ( |
| 76 | echo Error: wrong VS identifier |
| 77 | exit /B |
| 78 | ) |
| 79 | |
| 80 | rem ----- Parsing vcvarsall for qt samples and define PlatformToolset ----- |
| 81 | if /I "%VCFMT%" == "vc9" ( |
| 82 | set "VCVARS=%VS90COMNTOOLS%..\..\VC\vcvarsall.bat" |
| 83 | set "VCPlatformToolSet=v90" |
| 84 | ) else if /I "%VCFMT%" == "vc10" ( |
| 85 | set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" |
| 86 | set "VCPlatformToolSet=v100" |
| 87 | ) else if /I "%VCFMT%" == "vc11" ( |
| 88 | set "VCVARS=%VS110COMNTOOLS%..\..\VC\vcvarsall.bat" |
| 89 | set "VCPlatformToolSet=v110" |
| 90 | ) else if /I "%VCFMT%" == "vc12" ( |
| 91 | set "VCVARS=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" |
| 92 | set "VCPlatformToolSet=v120" |
| 93 | ) else if /I "%VCFMT%" == "vc14" ( |
| 94 | set "VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" |
| 95 | set "VCPlatformToolSet=v140" |
| 96 | ) else if /I "%VCFMT%" == "vc141" ( |
| 97 | for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do ( |
| 98 | set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat" |
| 99 | ) |
| 100 | set "VCPlatformToolSet=v141" |
| 101 | ) else if /I "%VCFMT%" == "gcc" ( |
| 102 | rem MinGW |
| 103 | ) else ( |
| 104 | echo Error: first argument ^(%VCVER%^) should specify supported version of Visual C++, |
| 105 | echo one of: vc10 ^(VS 2010 SP3^), vc11 ^(VS 2012 SP3^), vc12 ^(VS 2013^) or vc14 ^(VS 2015^) |
| 106 | exit |
| 107 | ) |
| 108 | |
| 109 | rem ----- For compatability with external application using CASROOT ----- |
| 110 | if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%" |
| 111 | |
| 112 | rem ----- Define path to 3rdparty products ----- |
| 113 | set "THIRDPARTY_DIR=@3RDPARTY_DIR@" |
| 114 | |
| 115 | if ["%ARCH%"] == ["32"] set VCARCH=x86 |
| 116 | if ["%ARCH%"] == ["64"] set VCARCH=amd64 |
| 117 | |
| 118 | if /I ["%1"] == ["vc141"] set "VCVER=vc14" |
| 119 | if exist "%CASROOT%\custom.bat" ( |
| 120 | call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB% |
| 121 | ) |
| 122 | |
| 123 | if not ["%TCL_DIR%"] == [""] set "PATH=%TCL_DIR%;%PATH%" |
| 124 | if not ["%TK_DIR%"] == [""] set "PATH=%TK_DIR%;%PATH%" |
| 125 | if not ["%FREETYPE_DIR%"] == [""] set "PATH=%FREETYPE_DIR%;%PATH%" |
| 126 | if not ["%FREEIMAGE_DIR%"] == [""] set "PATH=%FREEIMAGE_DIR%;%PATH%" |
| 127 | if not ["%EGL_DIR%"] == [""] set "PATH=%EGL_DIR%;%PATH%" |
| 128 | if not ["%GLES2_DIR%"] == [""] set "PATH=%GLES2_DIR%;%PATH%" |
| 129 | if not ["%TBB_DIR%"] == [""] set "PATH=%TBB_DIR%;%PATH%" |
| 130 | if not ["%VTK_DIR%"] == [""] set "PATH=%VTK_DIR%;%PATH%" |
| 131 | if not ["%FFMPEG_DIR%"] == [""] set "PATH=%FFMPEG_DIR%;%PATH%" |
| 132 | if not ["%QTDIR%"] == [""] set "PATH=%QTDIR%/bin;%PATH%" |
| 133 | |
| 134 | rem ----- Set path to 3rd party and OCCT libraries ----- |
| 135 | if not "%CSF_OCCTBinPath%" == "" ( |
| 136 | set "PATH=%CSF_OCCTBinPath%;%PATH%" |
| 137 | ) |
| 138 | |
| 139 | if not ["%TK_DIR%"] == ["%TCL_DIR%"] ( |
| 140 | if not ["%TK_DIR%"] == [""] set "TK_LIBRARY=%TK_DIR%/../lib/tk%TK_VERSION_WITH_DOT%" |
| 141 | if not ["%TCL_DIR%"] == [""] set "TCL_LIBRARY=%TCL_DIR%/../lib/tcl%TCL_VERSION_WITH_DOT%" |
| 142 | ) |
| 143 | |
| 144 | rem ----- Set envoronment variables used by OCCT ----- |
| 145 | set CSF_LANGUAGE=us |
| 146 | set MMGT_CLEAR=1 |
| 147 | set "CSF_SHMessage=%CSF_OCCTResourcePath%\SHMessage" |
| 148 | set "CSF_MDTVTexturesDirectory=%CSF_OCCTResourcePath%\Textures" |
| 149 | set "CSF_ShadersDirectory=%CSF_OCCTResourcePath%\Shaders" |
| 150 | set "CSF_XSMessage=%CSF_OCCTResourcePath%\XSMessage" |
| 151 | set "CSF_TObjMessage=%CSF_OCCTResourcePath%\TObj" |
| 152 | set "CSF_StandardDefaults=%CSF_OCCTResourcePath%\StdResource" |
| 153 | set "CSF_PluginDefaults=%CSF_OCCTResourcePath%\StdResource" |
| 154 | set "CSF_XCAFDefaults=%CSF_OCCTResourcePath%\StdResource" |
| 155 | set "CSF_TObjDefaults=%CSF_OCCTResourcePath%\StdResource" |
| 156 | set "CSF_StandardLiteDefaults=%CSF_OCCTResourcePath%\StdResource" |
| 157 | set "CSF_IGESDefaults=%CSF_OCCTResourcePath%\XSTEPResource" |
| 158 | set "CSF_STEPDefaults=%CSF_OCCTResourcePath%\XSTEPResource" |
| 159 | set "CSF_XmlOcafResource=%CSF_OCCTResourcePath%\XmlOcafResource" |
| 160 | set "CSF_MIGRATION_TYPES=%CSF_OCCTResourcePath%\StdResource\MigrationSheet.txt" |
| 161 | |
| 162 | rem ----- Draw Harness special stuff ----- |
| 163 | if exist "%CSF_OCCTResourcePath%\DrawResources" ( |
| 164 | set "DRAWHOME=%CSF_OCCTResourcePath%\DrawResources" |
| 165 | set "CSF_DrawPluginDefaults=%CSF_OCCTResourcePath%\DrawResources" |
| 166 | |
| 167 | if exist "%CSF_OCCTResourcePath%\DrawResources\DrawDefault" ( |
| 168 | set "DRAWDEFAULT=%CSF_OCCTResourcePath%\DrawResources\DrawDefault" |
| 169 | ) |
| 170 | ) |