2022-02-27 08:35:28 +08:00
|
|
|
@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
|
2022-02-27 15:17:46 +08:00
|
|
|
set DIRNAME=%~dp0\..\.cache
|
2022-02-27 08:35:28 +08:00
|
|
|
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%
|
|
|
|
|
|
|
|
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS_BITNESS=32BIT || set OS_BITNESS=64BIT
|
|
|
|
|
|
|
|
set UNZIP_EXE=%DIRNAME%\.6.0g-mingw64\7zip\7z.exe
|
|
|
|
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%\.6.0g-mingw64\7zip\
|
|
|
|
del %TEMP%\7zInstall.exe
|
|
|
|
)
|
|
|
|
|
|
|
|
set MINGW64_DIR=%DIRNAME%\.6.0g-mingw64\mingw64
|
|
|
|
set MINGW64_TAR=%DIRNAME%\.6.0g-mingw64\devcpp-mingw64-1.0.0.tar
|
|
|
|
set MINGW64_ZIP=%TEMP%\devcpp-mingw64-1.0.0.tgz
|
|
|
|
set MINGW64_BIN=%MINGW64_DIR%\package\bin
|
|
|
|
|
|
|
|
@rem require correct MINGW64 version
|
|
|
|
if not exist %MINGW64_BIN%\gcc.exe (
|
|
|
|
echo Downloading MINGW64 version %MINGW64_VERSION%...
|
|
|
|
|
|
|
|
call :downloadFile https://registry.npmmirror.com/devcpp-mingw64/-/devcpp-mingw64-1.0.0.tgz %MINGW64_ZIP%
|
|
|
|
|
|
|
|
echo Installing MINGW64
|
|
|
|
|
|
|
|
%UNZIP_EXE% x %MINGW64_ZIP% -o%DIRNAME%\.6.0g-mingw64 -y
|
|
|
|
%UNZIP_EXE% x %MINGW64_TAR% -o%DIRNAME%\.6.0g-mingw64\mingw64 -y
|
|
|
|
del %MINGW64_ZIP%
|
|
|
|
del %MINGW64_TAR%
|
|
|
|
)
|
|
|
|
|
|
|
|
@rem parse cli args to pass them to cmWake
|
|
|
|
|
|
|
|
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 runMINGW64
|
|
|
|
|
|
|
|
set CMD_LINE_ARGS=%*
|
|
|
|
goto runMINGW64
|
|
|
|
|
|
|
|
:4NT_args
|
|
|
|
@rem Get arguments from the 4NT Shell from JP Software
|
|
|
|
set CMD_LINE_ARGS=%$
|
|
|
|
|
|
|
|
:runMINGW64
|
|
|
|
%MINGW64_BIN%\%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
|