set "HAVE_OPENCL=false"
set "HAVE_FREEIMAGE=false"
set "HAVE_FFMPEG=false"
-set "HAVE_GL2PS=false"
set "HAVE_VTK=false"
set "HAVE_GLES2=false"
set "HAVE_D3D=false"
set "HAVE_ZLIB=false"
set "HAVE_LIBLZMA=false"
+set "HAVE_RAPIDJSON=false"
+set "HAVE_E57=false"
set "CSF_OPT_INC="
set "CSF_OPT_LIB32="
set "CSF_OPT_LIB64="
set "CSF_OPT_BIN32="
set "CSF_OPT_BIN64="
-
-rem ----- Load local settings -----
-if exist "%~dp0custom.bat" (
- call "%~dp0custom.bat" %1 %2 %3 %4 %5
-)
+set "CSF_DEFINES=%CSF_DEFINES_EXTRA%"
if not ["%CASROOT%"] == [""] if exist "%SCRIPTROOT%\%CASROOT%" set "CASROOT=%SCRIPTROOT%\%CASROOT%"
if ["%CASROOT%"] == [""] set "CASROOT=%SCRIPTROOT%"
+rem ----- Load local settings -----
+if exist "%CASROOT%\custom.bat" (
+ call "%CASROOT%\custom.bat" %1 %2 %3 %4 %5
+)
+
rem ----- Read script arguments (override local settings) -----
if not ["%1"] == [""] set "VCVER=%1"
if not ["%2"] == [""] set "ARCH=%2"
if /I ["%3"] == ["i"] set "CASDEB=i"
if /I ["%3"] == ["relwithdeb"] set "CASDEB=i"
-rem Decode VCVER
-call "%~dp0adm\vcver.bat"
+rem Decode VCVER variable and define related ones:
+rem
+rem VCFMT - "vc" followed by full version number of Visual Studio toolset
+rem (same as VCVER without optional suffix "-uwp")
+rem VCLIB - name of folder contining binaries
+rem (same as VCVER except without third version in number)
+rem VCPROP - name of required Visual Studion Workload (starting with VS 2017)
+rem
+rem Note that for VS before 2015 (vc14) always
+rem VCFMT=VCLIB=VCVER and VCPROP=NativeDesktop
+
+rem Since VS 2017, environment variables like VS100COMNTOOLS are not defined
+rem any more, we can only use vswhere.exe tool to find Visual Studio.
+rem Add path to vswhere.exe
+set "PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer"
+
+rem for vc10-12, interpretation is trivial
+set VCFMT=%VCVER%
+set VCLIB=%VCVER:~0,4%
+set VCPROP=NativeDesktop
+rem vc14 and later can have optional suffix "-uwp"
+if "%VCVER:~-4%" == "-uwp" (
+ set VCFMT=%VCVER:~0,-4%
+ set VCLIB=%VCLIB%-uwp
+ set VCPROP=Universal
+)
+rem echo VCVER=%VCVER% VCFMT=%VCFMT% VCLIB=%VCLIB% VCPROP=%VCPROP%
+
+rem ----- Parsing of Visual Studio platform -----
+set "VisualStudioExpressName=VCExpress"
+
+if not "%DevEnvDir%" == "" (
+ rem If DevEnvDir is already defined (e.g. in custom.bat), use that value
+) else if /I "%VCFMT%" == "vc9" (
+ set "DevEnvDir=%VS90COMNTOOLS%..\IDE"
+) else if /I "%VCFMT%" == "vc10" (
+ set "DevEnvDir=%VS100COMNTOOLS%..\IDE"
+) else if /I "%VCFMT%" == "vc11" (
+ set "DevEnvDir=%VS110COMNTOOLS%..\IDE"
+ rem Visual Studio Express starting from VS 2012 is called "for Windows Desktop"
+ rem and has a new name for executable - WDExpress
+ set "VisualStudioExpressName=WDExpress"
+) else if /I "%VCFMT%" == "vc12" (
+ set "DevEnvDir=%VS120COMNTOOLS%..\IDE"
+ set "VisualStudioExpressName=WDExpress"
+) else if /I "%VCFMT%" == "vc14" (
+ set "DevEnvDir=%VS140COMNTOOLS%..\IDE"
+) else if /I "%VCFMT%" == "vc141" (
+ for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
+ set "DevEnvDir=%%i\Common7\IDE\"
+ )
+) else if /I "%VCFMT%" == "gcc" (
+ rem MinGW
+) else (
+ echo Error: first argument ^(%VCVER%^) should specify supported version of Visual C++,
+ echo one of:
+ echo vc9 = VS 2008 ^(SP1^)
+ echo vc10 = VS 2010 ^(SP3^)
+ echo vc11 = VS 2012 ^(SP3^)
+ echo vc12 = VS 2013 ^(SP3^)
+ echo vc14 = VS 2015
+ echo vc141 = VS 2017
+ exit /B
+)
+
+rem ----- Parsing vcvarsall for qt samples and define PlatformToolset -----
+if /I "%VCFMT%" == "vc9" (
+ set "VCVARS=%VS90COMNTOOLS%..\..\VC\vcvarsall.bat"
+ set "VCPlatformToolSet=v90"
+) else if /I "%VCFMT%" == "vc10" (
+ set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"
+ set "VCPlatformToolSet=v100"
+) else if /I "%VCFMT%" == "vc11" (
+ set "VCVARS=%VS110COMNTOOLS%..\..\VC\vcvarsall.bat"
+ set "VCPlatformToolSet=v110"
+) else if /I "%VCFMT%" == "vc12" (
+ set "VCVARS=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"
+ set "VCPlatformToolSet=v120"
+) else if /I "%VCFMT%" == "vc14" (
+ set "VCVARS=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"
+ set "VCPlatformToolSet=v140"
+) else if /I "%VCFMT%" == "vc141" (
+ for /f "usebackq delims=" %%i in (`vswhere.exe -version "[15.0,15.99]" -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
+ set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
+ )
+ set "VCPlatformToolSet=v141"
+) else if /I "%VCFMT%" == "gcc" (
+ rem MinGW
+) else (
+ echo Error: wrong VS identifier
+ exit /B
+)
set "CSF_OPT_LIB32D=%CSF_OPT_LIB32%"
set "CSF_OPT_LIB64D=%CSF_OPT_LIB64%"
set "PRODUCTS_DEFINES="
if ["%HAVE_TBB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_TBB" & set "CSF_DEFINES=HAVE_TBB;%CSF_DEFINES%"
if ["%HAVE_OPENCL%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_OPENCL" & set "CSF_DEFINES=HAVE_OPENCL;%CSF_DEFINES%"
-if ["%HAVE_GL2PS%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_GL2PS" & set "CSF_DEFINES=HAVE_GL2PS;%CSF_DEFINES%"
if ["%HAVE_FREEIMAGE%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FREEIMAGE" & set "CSF_DEFINES=HAVE_FREEIMAGE;%CSF_DEFINES%"
if ["%HAVE_FFMPEG%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_FFMPEG" & set "CSF_DEFINES=HAVE_FFMPEG;%CSF_DEFINES%"
if ["%HAVE_VTK%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_VTK" & set "CSF_DEFINES=HAVE_VTK;%CSF_DEFINES%"
if ["%HAVE_D3D%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_D3D" & set "CSF_DEFINES=HAVE_D3D;%CSF_DEFINES%"
if ["%HAVE_ZLIB%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_ZLIB" & set "CSF_DEFINES=HAVE_ZLIB;%CSF_DEFINES%"
if ["%HAVE_LIBLZMA%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_LIBLZMA" & set "CSF_DEFINES=HAVE_LIBLZMA;%CSF_DEFINES%"
+if ["%HAVE_RAPIDJSON%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_RAPIDJSON" & set "CSF_DEFINES=HAVE_RAPIDJSON;%CSF_DEFINES%"
+if ["%HAVE_E57%"] == ["true"] set "PRODUCTS_DEFINES=%PRODUCTS_DEFINES% -DHAVE_E57" & set "CSF_DEFINES=HAVE_E57;%CSF_DEFINES%"
rem Eliminate VS warning
if ["%CSF_DEFINES%"] == [""] set "CSF_DEFINES=;"