1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

make.bat: fix path backslashes to forward slashes for more compatibility, change quoting to be more consistent (#16678)

This commit is contained in:
JalonSolov 2022-12-14 15:48:34 -05:00 committed by GitHub
parent c3ee26f15f
commit 5b008fca41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,29 +11,29 @@ set compiler=
set subcmd= set subcmd=
set target=build set target=build
set V_EXE=.\v.exe set V_EXE=./v.exe
set V_BOOTSTRAP=.\v_win_bootstrap.exe set V_BOOTSTRAP=./v_win_bootstrap.exe
set V_OLD=.\v_old.exe set V_OLD=./v_old.exe
set V_UPDATED=.\v_up.exe set V_UPDATED=./v_up.exe
REM TCC variables REM TCC variables
set "tcc_url=https://github.com/vlang/tccbin" set tcc_url=https://github.com/vlang/tccbin
set "tcc_dir=thirdparty\tcc" set tcc_dir=thirdparty/tcc
set "tcc_exe=thirdparty\tcc\tcc.exe" set tcc_exe=thirdparty/tcc/tcc.exe
if "%PROCESSOR_ARCHITECTURE%" == "x86" ( set "tcc_branch=thirdparty-windows-i386" ) else ( set "tcc_branch=thirdparty-windows-amd64" ) if "%PROCESSOR_ARCHITECTURE%" == "x86" ( set tcc_branch="thirdparty-windows-i386" ) else ( set tcc_branch="thirdparty-windows-amd64" )
if "%~1" == "-tcc32" set "tcc_branch=thirdparty-windows-i386" if "%~1" == "-tcc32" set tcc_branch="thirdparty-windows-i386"
REM VC settings REM VC settings
set "vc_url=https://github.com/vlang/vc" set vc_url=https://github.com/vlang/vc
set "vc_dir=%~dp0vc" set vc_dir=%~dp0vc
REM Let a particular environment specify their own TCC and VC repos (to help mirrors) REM Let a particular environment specify their own TCC and VC repos (to help mirrors)
if /I not ["%TCC_GIT%"] == [""] set "tcc_url=%TCC_GIT%" if /I not ["%TCC_GIT%"] == [""] set tcc_url=%TCC_GIT%
if /I not ["%TCC_BRANCH%"] == [""] set "tcc_branch=%TCC_BRANCH%" if /I not ["%TCC_BRANCH%"] == [""] set tcc_branch=%TCC_BRANCH%
if /I not ["%VC_GIT%"] == [""] set "vc_url=%VC_GIT%" if /I not ["%VC_GIT%"] == [""] set vc_url=%VC_GIT%
pushd %~dp0 pushd "%~dp0"
:verifyopt :verifyopt
REM Read stdin EOF REM Read stdin EOF
@ -42,7 +42,7 @@ if ["%~1"] == [""] goto :init
REM Target options REM Target options
if !shift_counter! LSS 1 ( if !shift_counter! LSS 1 (
if "%~1" == "help" ( if "%~1" == "help" (
if not ["%~2"] == [""] set "subcmd=%~2"& shift& set /a shift_counter+=1 if not ["%~2"] == [""] set subcmd=%~2& shift& set /a shift_counter+=1
) )
for %%z in (build clean cleanall check help rebuild) do ( for %%z in (build clean cleanall check help rebuild) do (
if "%~1" == "%%z" set target=%1& shift& set /a shift_counter+=1& goto :verifyopt if "%~1" == "%%z" set target=%1& shift& set /a shift_counter+=1& goto :verifyopt
@ -75,7 +75,7 @@ goto :!target!
:check :check
echo. echo.
echo Check everything echo Check everything
v.exe test-all "%V_EXE%" test-all
exit /b 0 exit /b 0
:cleanall :cleanall
@ -118,7 +118,7 @@ if !flag_local! NEQ 1 (
pushd "%vc_dir%" && ( pushd "%vc_dir%" && (
echo Updating vc... echo Updating vc...
echo ^> Sync with remote !vc_url! echo ^> Sync with remote !vc_url!
cd "%vc_dir%" cd %vc_dir%
git pull --quiet git pull --quiet
cd .. cd ..
popd popd
@ -134,7 +134,7 @@ REM By default, use tcc, since we have it prebuilt:
:tcc_strap :tcc_strap
:tcc32_strap :tcc32_strap
echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with "!tcc_exe!" echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with "!tcc_exe!"
"!tcc_exe!" -Bthirdparty/tcc -bt10 -g -w -o "%V_BOOTSTRAP%" vc\v_win.c -ladvapi32 "!tcc_exe!" -Bthirdparty/tcc -bt10 -g -w -o "%V_BOOTSTRAP%" ./vc/v_win.c -ladvapi32
if %ERRORLEVEL% NEQ 0 goto :compile_error if %ERRORLEVEL% NEQ 0 goto :compile_error
echo ^> Compiling "%V_EXE%" with "%V_BOOTSTRAP%" echo ^> Compiling "%V_EXE%" with "%V_BOOTSTRAP%"
"%V_BOOTSTRAP%" -keepc -g -showcc -cc "!tcc_exe!" -cflags -Bthirdparty/tcc -o "%V_UPDATED%" cmd/v "%V_BOOTSTRAP%" -keepc -g -showcc -cc "!tcc_exe!" -cflags -Bthirdparty/tcc -o "%V_UPDATED%" cmd/v
@ -151,7 +151,7 @@ if %ERRORLEVEL% NEQ 0 (
) )
echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with Clang echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with Clang
clang -std=c99 -municode -g -w -o "%V_BOOTSTRAP%" .\vc\v_win.c -ladvapi32 clang -std=c99 -municode -g -w -o "%V_BOOTSTRAP%" ./vc/v_win.c -ladvapi32
if %ERRORLEVEL% NEQ 0 ( if %ERRORLEVEL% NEQ 0 (
echo In most cases, compile errors happen because the version of Clang installed is too old echo In most cases, compile errors happen because the version of Clang installed is too old
clang --version clang --version
@ -173,7 +173,7 @@ if %ERRORLEVEL% NEQ 0 (
) )
echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with GCC echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with GCC
gcc -std=c99 -municode -g -w -o "%V_BOOTSTRAP%" .\vc\v_win.c -ladvapi32 gcc -std=c99 -municode -g -w -o "%V_BOOTSTRAP%" ./vc/v_win.c -ladvapi32
if %ERRORLEVEL% NEQ 0 ( if %ERRORLEVEL% NEQ 0 (
echo In most cases, compile errors happen because the version of GCC installed is too old echo In most cases, compile errors happen because the version of GCC installed is too old
gcc --version gcc --version
@ -195,26 +195,26 @@ if "%PROCESSOR_ARCHITECTURE%" == "x86" (
set HostArch=x86 set HostArch=x86
) )
if not exist "%VsWhereDir%\Microsoft Visual Studio\Installer\vswhere.exe" ( if not exist "%VsWhereDir%/Microsoft Visual Studio/Installer/vswhere.exe" (
echo ^> MSVC not found echo ^> MSVC not found
if not [!compiler!] == [] goto :error if not [!compiler!] == [] goto :error
goto :compile_error goto :compile_error
) )
for /f "usebackq tokens=*" %%i in (`"%VsWhereDir%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do ( for /f "usebackq tokens=*" %%i in (`"%VsWhereDir%/Microsoft Visual Studio/Installer/vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set InstallDir=%%i set InstallDir=%%i
) )
if exist "%InstallDir%\Common7\Tools\vsdevcmd.bat" ( if exist "%InstallDir%/Common7/Tools/vsdevcmd.bat" (
call "%InstallDir%\Common7\Tools\vsdevcmd.bat" -arch=%HostArch% -host_arch=%HostArch% -no_logo call "%InstallDir%/Common7/Tools/vsdevcmd.bat" -arch=%HostArch% -host_arch=%HostArch% -no_logo
) else if exist "%VsWhereDir%\Microsoft Visual Studio 14.0\Common7\Tools\vsdevcmd.bat" ( ) else if exist "%VsWhereDir%/Microsoft Visual Studio 14.0/Common7/Tools/vsdevcmd.bat" (
call "%VsWhereDir%\Microsoft Visual Studio 14.0\Common7\Tools\vsdevcmd.bat" -arch=%HostArch% -host_arch=%HostArch% -no_logo call "%VsWhereDir%/Microsoft Visual Studio 14.0/Common7/Tools/vsdevcmd.bat" -arch=%HostArch% -host_arch=%HostArch% -no_logo
) )
set ObjFile=.v.c.obj set ObjFile=.v.c.obj
echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with MSVC echo ^> Attempting to build "%V_BOOTSTRAP%" (from v_win.c) with MSVC
cl.exe /volatile:ms /Fo%ObjFile% /W0 /MD /D_VBOOTSTRAP vc\v_win.c user32.lib kernel32.lib advapi32.lib shell32.lib /link /nologo /out:"%V_BOOTSTRAP%" /incremental:no cl.exe /volatile:ms /Fo%ObjFile% /W0 /MD /D_VBOOTSTRAP "vc/v_win.c" user32.lib kernel32.lib advapi32.lib shell32.lib /link /nologo /out:"%V_BOOTSTRAP%" /incremental:no
if %ERRORLEVEL% NEQ 0 ( if %ERRORLEVEL% NEQ 0 (
echo In some cases, compile errors happen because of the MSVC compiler version echo In some cases, compile errors happen because of the MSVC compiler version
cl.exe cl.exe
@ -229,7 +229,7 @@ call :move_updated_to_v
goto :success goto :success
:download_tcc :download_tcc
pushd %tcc_dir% && ( pushd "%tcc_dir%" && (
echo Updating TCC echo Updating TCC
echo ^> Syncing TCC from !tcc_url! echo ^> Syncing TCC from !tcc_url!
git pull --quiet git pull --quiet
@ -252,14 +252,14 @@ echo ERROR: please follow the instructions in https://github.com/vlang/v/wiki/In
exit /b 1 exit /b 1
:success :success
.\v.exe run cmd\tools\detect_tcc.v "%V_EXE%" run cmd/tools/detect_tcc.v
echo ^> V built successfully! echo ^> V built successfully!
echo ^> To add V to your PATH, run `.\v.exe symlink`. echo ^> To add V to your PATH, run `%V_EXE% symlink`.
:version :version
echo. echo.
echo | set /p="V version: " echo | set /p="V version: "
.\v.exe version "%V_EXE%" version
goto :eof goto :eof
:usage :usage
@ -353,7 +353,7 @@ endlocal
exit /b 0 exit /b 0
:move_updated_to_v :move_updated_to_v
@REM del "%V_EXE%" &:: breaks if `make.bat` is run from `v up` b/c of held file handle on `v.exe` @REM del "%V_EXE%" &:: breaks if `make.bat` is run from `v up` b/c of held file handle on `%V_EXE%`
if exist "%V_EXE%" move "%V_EXE%" "%V_OLD%" >nul if exist "%V_EXE%" move "%V_EXE%" "%V_OLD%" >nul
REM sleep for at most 100ms REM sleep for at most 100ms
ping 192.0.2.1 -n 1 -w 100 >nul ping 192.0.2.1 -n 1 -w 100 >nul