66 lines
1.7 KiB
Batchfile
66 lines
1.7 KiB
Batchfile
|
@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
|