1
0
forked from GRIN/grim
Files
goblin/scripts/webtunnel.bat
T
ardocrat a8df3a20ba fix: build on windows
- Added Windows batch file
- Fixed check for empty file on build

Reviewed-on: https://code.gri.mw/GUI/grim/pulls/45
2026-02-19 19:27:08 +00:00

71 lines
1.9 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
:: Change directory to the script's location
cd /d "%~dp0"
:: Skip if Go not found.
where go >nul 2>nul
if %ERRORLEVEL% neq 0 (
echo Go could not be found
exit /b 0
)
set "go_os=%~1"
set "go_arch=%~2"
set "output_path=%~3"
echo Go build for os: %go_os%, arch: %go_arch%
:: Setup vars for Android.
if "%go_os%"=="android" (
:: Setup NDK root path env.
if "%ANDROID_NDK_HOME%"=="" (
:: Extract ndkVersion from build.gradle
:: Equivalent to: cat ../android/app/build.gradle | grep 'ndkVersion' | cut -d ' -f 2
for /f "tokens=2 delims='" %%a in ('findstr "ndkVersion" ..\android\app\build.gradle') do (
set "NDK_VERSION=%%a"
)
set "ANDROID_NDK_HOME=%ANDROID_HOME%\ndk\!NDK_VERSION!"
)
:: Setup NDK host path.
:: Since this is a Batch script, the host is Windows.
set "arch_host=windows-x86_64"
:: Setup NDK target arch.
if "%go_arch%"=="arm64" (
set "arch_bin_prefix=aarch64-linux-android"
) else if "%go_arch%"=="arm" (
set "arch_bin_prefix=armv7a-linux-androideabi"
) else (
set "arch_bin_prefix=x86_64-linux-android"
)
:: Build for current target.
set "CGO_ENABLED=1"
set "GOOS=%go_os%"
set "GOARCH=%go_arch%"
:: Define CC and CXX paths
set "CC=!ANDROID_NDK_HOME!\toolchains\llvm\prebuilt\!arch_host!\bin\!arch_bin_prefix!35-clang"
set "CXX=!ANDROID_NDK_HOME!\toolchains\llvm\prebuilt\!arch_host!\bin\!arch_bin_prefix!35-clang++"
go build -C "../tor/webtunnel" -ldflags="-s -w" -o "%output_path%" code.gri.mw/WEB/webtunnel/main/client
) else (
set "extra_flag="
if "%go_os%"=="windows" (
set "extra_flag=-H=windowsgui"
)
set "GOOS=%go_os%"
set "GOARCH=%go_arch%"
:: Build for non-android targets
go build -C "../tor/webtunnel" -ldflags="-s -w !extra_flag!" -o "%output_path%" code.gri.mw/WEB/webtunnel/main/client
)
endlocal