From 1967d67234b79ca7555a4dddda2b4761b10de250 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 7 Oct 2019 14:57:39 +0200 Subject: Add bootstrap/environment batch files for Clang targeting MSVC --- etc/bootstrap/bbot-bootstrap-clang.bat | 186 +++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 etc/bootstrap/bbot-bootstrap-clang.bat (limited to 'etc/bootstrap/bbot-bootstrap-clang.bat') diff --git a/etc/bootstrap/bbot-bootstrap-clang.bat b/etc/bootstrap/bbot-bootstrap-clang.bat new file mode 100644 index 0000000..5b7f52e --- /dev/null +++ b/etc/bootstrap/bbot-bootstrap-clang.bat @@ -0,0 +1,186 @@ +@echo off + +rem file : etc/bootstrap/bbot-bootstrap-clang.bat +rem copyright : Copyright (c) 2014-2019 Code Synthesis Ltd +rem license : TBC; see accompanying LICENSE file + +setlocal EnableExtensions EnableDelayedExpansion + +rem If the MSVC variable is set, then set up the environment via the MSVC +rem command prompt rather than letting Clang find some default (note that +rem in the latter case, clang++ should be in PATH). + +rem set "MSVC=" +rem set "VCVARS=" + +set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" +set "VCVARS=VC\Auxiliary\Build\vcvars64.bat" + +set "CXX=clang++" +set "BUILD=C:\tmp" +set "INSTALL=C:\build2" +set "BOOTSTRAP=C:\bootstrap" +set "ENVIRONMENTS=C:\environments" + +set "TFTP=196.254.111.222" +rem set "TFTP=10.1.0.1:55123" +set "VERBOSE=3" +set "TIMEOUT=600" + +rem If we already have the bbot worker, assume we are bootstrapped. +rem +if exist %INSTALL%\bin\bbot-worker.exe ( + set "PATH=%INSTALL%\bin;%PATH%" + bbot-worker.exe --startup --build %BUILD% --environments %ENVIRONMENTS%^ + --tftp-host %TFTP% --verbose %VERBOSE% + goto end +) + +rem Setup the MSVC environment. +rem +if not "_%MSVC%_" == "__" ( + call "%MSVC%\%VCVARS%" + if errorlevel 1 goto error +) + +rem Use bootstrap tools. +rem +set "PATH=%BOOTSTRAP%\bin;%PATH%" + +rem Show the steps we are performing. +rem +@echo on + +@rem +@rem Bootstrap the toolchain and then build bbot. +@rem +@if exist %BUILD%\bootstrap\ ( + rmdir /S /Q %BUILD%\bootstrap + @if errorlevel 1 goto error +) + +mkdir %BUILD%\bootstrap +@if errorlevel 1 goto error + +@if exist %INSTALL% ( + rmdir /S /Q %INSTALL% + @if errorlevel 1 goto error +) + +cd %BUILD%\bootstrap + +@rem +@rem Get the baseutils. +@rem +@rem We could be running on a new network which may take Windows some time +@rem to digest. And if we start before that happens, we will be hanging +@rem forever. +@rem + +:restart +curl -s -S -O --connect-timeout 5 --max-time 60^ + "tftp://%tftp%/build2-baseutils-x86_64-windows.zip" +@if errorlevel 1 goto restart + +unzip -q build2-baseutils-x86_64-windows.zip +@if errorlevel 1 goto error + +del build2-baseutils-x86_64-windows.zip +@if errorlevel 1 goto error + +move build2-baseutils-*-x86_64-windows %INSTALL% +@if errorlevel 1 goto error + + +@rem +@rem Get the toolchain. +@rem +curl -s -S -O "tftp://%tftp%/build2-toolchain.tar.xz" +@if errorlevel 1 goto error + +xz -d build2-toolchain.tar.xz +@if errorlevel 1 goto error + +tar -xf build2-toolchain.tar +@if errorlevel 1 goto error + +del build2-toolchain.tar +@if errorlevel 1 goto error + + +@rem +@rem Get the repository certificate fingerprint. +@rem +curl -s -S -O "tftp://%tftp%/trust" +@if errorlevel 1 goto error + +@set /P trust=bootstrap.manifest +@if errorlevel 1 goto error + +curl -s -S --upload-file bootstrap.manifest "tftp://%tftp%/bootstrap.manifest" +@if errorlevel 1 goto error + +shutdown /s /t 5 +@if errorlevel 1 goto error + +@echo off +goto end + +:error +@echo off +endlocal +exit /b 1 + +:end +endlocal -- cgit v1.1