|
| 1 | +@echo off |
| 2 | +SETLOCAL |
| 3 | + |
| 4 | +:: This script downloads the trusted WebUI compiled library by GitHub CI for Windows. |
| 5 | + |
| 6 | +IF "%1"=="minimal" ( |
| 7 | + goto MINIMAL |
| 8 | +) |
| 9 | + |
| 10 | +:: --- Full ------------------------------------- |
| 11 | +:: Download WebUI library for all supported OS. |
| 12 | +echo WebUI Deno Bootstrap |
| 13 | +echo. |
| 14 | + |
| 15 | +:: Creating the temporary cache folder |
| 16 | +mkdir "cache" 2>nul 1>nul |
| 17 | + |
| 18 | +:: Nightly Build |
| 19 | +:: SET "LINUX_ARM=https://github.com/webui-dev/webui/releases/download/nightly/webui-linux-gcc-arm.zip" |
| 20 | +:: SET "LINUX_ARM64=https://github.com/webui-dev/webui/releases/download/nightly/webui-linux-gcc-arm64.zip" |
| 21 | +:: SET "LINUX_X64=https://github.com/webui-dev/webui/releases/download/nightly/webui-linux-gcc-x64.zip" |
| 22 | +:: SET "MACOS_ARM64=https://github.com/webui-dev/webui/releases/download/nightly/webui-macos-clang-arm64.zip" |
| 23 | +:: SET "MACOS_X64=https://github.com/webui-dev/webui/releases/download/nightly/webui-macos-clang-x64.zip" |
| 24 | +:: SET "WINDOWS_MSVC_X64=https://github.com/webui-dev/webui/releases/download/nightly/webui-windows-msvc-x64.zip" |
| 25 | + |
| 26 | +:: Release |
| 27 | +SET "LINUX_ARM=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-linux-gcc-arm.zip" |
| 28 | +SET "LINUX_ARM64=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-linux-gcc-arm64.zip" |
| 29 | +SET "LINUX_X64=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-linux-gcc-x64.zip" |
| 30 | +SET "MACOS_ARM64=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-macos-clang-arm64.zip" |
| 31 | +SET "MACOS_X64=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-macos-clang-x64.zip" |
| 32 | +SET "WINDOWS_MSVC_X64=https://github.com/webui-dev/webui/releases/download/2.4.1/webui-windows-msvc-x64.zip" |
| 33 | + |
| 34 | +:: Download and extract archives |
| 35 | +CALL :DOWNLOAD_AND_EXTRACT %LINUX_ARM% webui-linux-gcc-arm webui-2.so |
| 36 | +CALL :DOWNLOAD_AND_EXTRACT %LINUX_ARM64% webui-linux-gcc-arm64 webui-2.so |
| 37 | +CALL :DOWNLOAD_AND_EXTRACT %LINUX_X64% webui-linux-gcc-x64 webui-2.so |
| 38 | +CALL :DOWNLOAD_AND_EXTRACT %MACOS_ARM64% webui-macos-clang-arm64 webui-2.dylib |
| 39 | +CALL :DOWNLOAD_AND_EXTRACT %MACOS_X64% webui-macos-clang-x64 webui-2.dylib |
| 40 | +CALL :DOWNLOAD_AND_EXTRACT %WINDOWS_MSVC_X64% webui-windows-msvc-x64 webui-2.dll |
| 41 | + |
| 42 | +:: Remove cache folder |
| 43 | +echo * Cleaning... |
| 44 | +rmdir /S /Q "cache" 2>nul 1>nul |
| 45 | +exit /b |
| 46 | + |
| 47 | +:: Download and Extract Function |
| 48 | +:DOWNLOAD_AND_EXTRACT |
| 49 | +echo * Downloading [%1]... |
| 50 | +SET FULL_URL=%1 |
| 51 | +SET FILE_NAME=%2 |
| 52 | +SET LIB_DYN=%3 |
| 53 | +SET LIB_STATIC=%4 |
| 54 | +powershell -Command "Invoke-WebRequest '%FULL_URL%' -OutFile 'cache\%FILE_NAME%.zip'" |
| 55 | +echo * Extracting [%FILE_NAME%.zip]... |
| 56 | +mkdir "cache\%FILE_NAME%" 2>nul 1>nul |
| 57 | +tar -xf "cache\%FILE_NAME%.zip" -C "cache" |
| 58 | +IF NOT "%LIB_DYN%"=="" ( |
| 59 | + :: Copy dynamic library |
| 60 | + echo * Copying [%LIB_DYN%]... |
| 61 | + mkdir "%FILE_NAME%" 2>nul 1>nul |
| 62 | + copy /Y "cache\%FILE_NAME%\%LIB_DYN%" "%FILE_NAME%\%LIB_DYN%" 2>nul 1>nul |
| 63 | +) |
| 64 | +IF NOT "%LIB_STATIC%"=="" ( |
| 65 | + :: Copy dynamic library |
| 66 | + echo * Copying [%LIB_STATIC%]... |
| 67 | + mkdir "%FILE_NAME%" 2>nul 1>nul |
| 68 | + copy /Y "cache\%FILE_NAME%\%LIB_STATIC%" "%FILE_NAME%\%LIB_STATIC%" 2>nul 1>nul |
| 69 | +) |
| 70 | +GOTO :EOF |
| 71 | + |
| 72 | +:: --- Minimal ---------------------------------- |
| 73 | +:: Download WebUI library for only the current OS. |
| 74 | +:MINIMAL |
| 75 | + |
| 76 | +SET "BASE_URL=https://github.com/webui-dev/webui/releases/download/2.4.1/" |
| 77 | + |
| 78 | +:: Check the CPU architecture |
| 79 | +IF "%PROCESSOR_ARCHITECTURE%"=="x86" ( |
| 80 | + :: x86 32Bit |
| 81 | + :: SET "FILENAME=webui-windows-msvc-x86" |
| 82 | + ECHO Error: Windows x86 32Bit architecture is not supported yet |
| 83 | + exit /b |
| 84 | +) ELSE IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( |
| 85 | + :: x86 64Bit |
| 86 | + SET "FILENAME=webui-windows-msvc-x64" |
| 87 | +) ELSE IF "%PROCESSOR_ARCHITECTURE%"=="ARM" ( |
| 88 | + :: ARM 32Bit |
| 89 | + :: SET "FILENAME=webui-windows-msvc-arm" |
| 90 | + ECHO Error: Windows ARM architecture is unsupported yet |
| 91 | + exit /b |
| 92 | +) ELSE IF "%PROCESSOR_ARCHITECTURE%"=="ARM64" ( |
| 93 | + :: ARM 64Bit |
| 94 | + :: SET "FILENAME=webui-windows-msvc-arm64" |
| 95 | + ECHO Error: Windows ARM64 architecture is unsupported yet |
| 96 | + exit /b |
| 97 | +) ELSE ( |
| 98 | + ECHO Error: Unknown architecture '%PROCESSOR_ARCHITECTURE%' |
| 99 | + exit /b |
| 100 | +) |
| 101 | + |
| 102 | +:: Creating the temporary cache folder |
| 103 | +mkdir "cache" 2>nul 1>nul |
| 104 | +mkdir "cache\%FILENAME%" 2>nul 1>nul |
| 105 | + |
| 106 | +:: Download the archive using PowerShell |
| 107 | +powershell -Command "Invoke-WebRequest '%BASE_URL%%FILENAME%.zip' -OutFile 'cache\%FILENAME%.zip'" |
| 108 | + |
| 109 | +:: Extract archive (Windows 10 and later) |
| 110 | +tar -xf "cache\%FILENAME%.zip" -C "cache" |
| 111 | + |
| 112 | +:: Copy library |
| 113 | +mkdir "%FILENAME%" 2>nul 1>nul |
| 114 | +copy /Y "cache\%FILENAME%\webui-2.dll" "%FILENAME%\webui-2.dll" 2>nul 1>nul |
| 115 | + |
| 116 | +:: Remove cache folder |
| 117 | +rmdir /S /Q "cache" 2>nul 1>nul |
| 118 | + |
| 119 | +ENDLOCAL |
0 commit comments