@echo off setlocal ENABLEEXTENSIONS setlocal enableDelayedExpansion @rem set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal @rem get script directory name set DIRNAME=%~dp0\..\.cache if "%DIRNAME%" == "" set DIRNAME=. @rem strip trailing backslash from DIRNAME path to make it easier to work with IF %DIRNAME:~-1%==\ SET DIRNAME=%DIRNAME:~0,-1% @rem get OS bitness reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS_BITNESS=32BIT || set OS_BITNESS=64BIT set UNZIP_EXE=%DIRNAME%\7zip\7z.exe @rem require 7zip to unzip the cmake dist because windows sucks if not exist %UNZIP_EXE% ( echo Downloading 7zip... if %OS_BITNESS%==64BIT ( call :downloadFile https://www.7-zip.org/a/7z1801-x64.exe %TEMP%\7zInstall.exe ) else ( call :downloadFile https://www.7-zip.org/a/7z1801.exe %TEMP%\7zInstall.exe ) echo Installing 7zip @rem don't forget the trailing backslash here because 7zip is too stupid to deal with paths and just removes the last char %TEMP%\7zInstall.exe /S /D=%DIRNAME%\7zip\ del %TEMP%\7zInstall.exe ) if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. set CMD_LINE_ARGS= set _SKIP=2 :win9xME_args_slurp if "x%~1" == "x" goto runCmake set CMD_LINE_ARGS=%* goto runCmake :4NT_args @rem Get arguments from the 4NT Shell from JP Software set CMD_LINE_ARGS=%$ :runCmake %UNZIP_EXE% %CMD_LINE_ARGS% goto end @rem args: fileUrl, filePath :downloadFile powershell -Command "(New-Object Net.WebClient).DownloadFile('%~1', '%~2')" EXIT /B 0 :end if "%OS%"=="Windows_NT" endlocal