aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-05-02 09:14:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-05-02 09:14:58 +0200
commit7882d3f3ee9d2605e53e755b19351c7097e3fb7c (patch)
treea61df9965b26a11a74bf9807e635d3d9a57f95fc /etc
parent971e778b1a44dcd9fd39fad009c787aa170855ea (diff)
Add VC14 bootstrap/environment batch files
Diffstat (limited to 'etc')
-rw-r--r--etc/bootstrap/bbot-bootstrap-msvc-14.bat169
-rw-r--r--etc/bootstrap/bbot-bootstrap-msvc-15.bat (renamed from etc/bootstrap/bbot-bootstrap-msvc.bat)2
-rw-r--r--etc/environments/default-msvc-14.bat54
-rw-r--r--etc/environments/default-msvc-15.bat (renamed from etc/environments/default-msvc.bat)2
4 files changed, 225 insertions, 2 deletions
diff --git a/etc/bootstrap/bbot-bootstrap-msvc-14.bat b/etc/bootstrap/bbot-bootstrap-msvc-14.bat
new file mode 100644
index 0000000..d52831e
--- /dev/null
+++ b/etc/bootstrap/bbot-bootstrap-msvc-14.bat
@@ -0,0 +1,169 @@
+@echo off
+
+rem file : etc/bootstrap/bbot-bootstrap-msvc-14.bat
+rem copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+rem license : TBC; see accompanying LICENSE file
+
+setlocal EnableExtensions EnableDelayedExpansion
+
+set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio 14.0"
+set "VCVARS=%MSVC%\VC\vcvarsall.bat"
+set "VCARCH=amd64"
+rem set "VCARCH=amd64_x86"
+
+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"
+
+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 compiler for the toolchain.
+rem
+call "%VCVARS%" %VCARCH%
+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=<trust
+
+del trust
+@if errorlevel 1 goto error
+
+
+@rem
+@rem Bootstrap and install the toolchain.
+@rem
+@for /D %%d in (build2-toolchain-*) do set "bstrap=%%d"
+cd %bstrap%
+
+@rem Note: executing in a separate cmd.exe to preserve the echo mode.
+@rem
+cmd /C build-msvc.bat %INSTALL% %trust%
+@if errorlevel 1 goto error
+
+cd ..
+rmdir /S /Q %bstrap%
+@if errorlevel 1 goto error
+
+
+@rem
+@rem Switch to the bootstrapped utilities/toolchain.
+@rem
+@set "PATH=%INSTALL%\bin;%PATH%"
+
+
+@rem
+@rem Build and install the bbot worker.
+@rem
+@for /D %%d in (build2-toolchain-*) do set "config=%%d"
+cd %config%
+
+bpkg build --yes bbot
+@if errorlevel 1 goto error
+
+bpkg install bbot
+@if errorlevel 1 goto error
+
+cd ..
+rmdir /S /Q %config%
+@if errorlevel 1 goto error
+
+@rem
+@rem Finish off by uploading the result manifest produced by the bbot worker.
+@rem
+bbot-worker --bootstrap >manifest
+@if errorlevel 1 goto error
+
+curl -s -S --upload-file manifest "tftp://%tftp%/manifest"
+@if errorlevel 1 goto error
+
+@echo off
+goto end
+
+:error
+@echo off
+endlocal
+exit /b 1
+
+:end
+endlocal
diff --git a/etc/bootstrap/bbot-bootstrap-msvc.bat b/etc/bootstrap/bbot-bootstrap-msvc-15.bat
index 1cf5215..4818d09 100644
--- a/etc/bootstrap/bbot-bootstrap-msvc.bat
+++ b/etc/bootstrap/bbot-bootstrap-msvc-15.bat
@@ -1,6 +1,6 @@
@echo off
-rem file : etc/bootstrap/bbot-bootstrap-msvc.bat
+rem file : etc/bootstrap/bbot-bootstrap-msvc-15.bat
rem copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
rem license : TBC; see accompanying LICENSE file
diff --git a/etc/environments/default-msvc-14.bat b/etc/environments/default-msvc-14.bat
new file mode 100644
index 0000000..2af8136
--- /dev/null
+++ b/etc/environments/default-msvc-14.bat
@@ -0,0 +1,54 @@
+@echo off
+
+rem file : etc/environments/default-msvc-14.bat
+rem copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+rem license : TBC; see accompanying LICENSE file
+
+rem
+rem Environment setup script for C/C++ compilation with Visual Studio 14.
+rem
+
+rem %1 - target
+rem %2 - bbot executable
+rem %3+ - bbot options
+
+setlocal EnableExtensions EnableDelayedExpansion
+
+set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio 14.0"
+set "VCVARS=%MSVC%\VC\vcvarsall.bat"
+
+rem Based on target determine what we are building. If the target is
+rem not specified, then we build 64-bit by default.
+rem
+rem Note that an empty argument is passed as "" (literal quotes).
+rem
+if "_%1_" == "_x86_64-microsoft-win32-msvc14.0_" (
+ set "VCARCH=amd64"
+) else (
+ if "_%1_" == "_i386-microsoft-win32-msvc14.0_" (
+ set "VCARCH=amd64_x86"
+ ) else (
+ if _%1_ == _""_ (
+ set "VCARCH=amd64"
+ ) else (
+ echo error: unknown target %1
+ goto error
+ )
+ )
+)
+
+call "%VCVARS%" %VCARCH%
+if errorlevel 1 goto error
+
+%2 %3 %4 %5 %6 %7 %8 %9 cc config.c=cl config.cxx=cl
+if errorlevel 1 goto error
+
+goto end
+
+:error
+@echo off
+endlocal
+exit /b 1
+
+:end
+endlocal
diff --git a/etc/environments/default-msvc.bat b/etc/environments/default-msvc-15.bat
index 40ec364..6eecc71 100644
--- a/etc/environments/default-msvc.bat
+++ b/etc/environments/default-msvc-15.bat
@@ -1,6 +1,6 @@
@echo off
-rem file : etc/environments/default-msvc.bat
+rem file : etc/environments/default-msvc-15.bat
rem copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
rem license : TBC; see accompanying LICENSE file