aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-10-07 14:57:39 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-10-07 14:57:39 +0200
commit1967d67234b79ca7555a4dddda2b4761b10de250 (patch)
treee8e6a7ada4139d0c2b59e751e5bcc3d39ac7069f
parentb6e555163b0fed313282f193f3aa20318ad70c07 (diff)
Add bootstrap/environment batch files for Clang targeting MSVC
-rw-r--r--etc/bootstrap/bbot-bootstrap-clang.bat (renamed from etc/bootstrap/bbot-bootstrap-msvc-15.bat)40
-rw-r--r--etc/bootstrap/bbot-bootstrap-mingw.bat3
-rw-r--r--etc/bootstrap/bbot-bootstrap-msvc.bat (renamed from etc/bootstrap/bbot-bootstrap-msvc-16.bat)7
-rw-r--r--etc/environments/default-clang.bat71
-rw-r--r--etc/environments/default-msvc-15.bat49
-rw-r--r--etc/environments/default-msvc.bat (renamed from etc/environments/default-msvc-16.bat)26
6 files changed, 119 insertions, 77 deletions
diff --git a/etc/bootstrap/bbot-bootstrap-msvc-15.bat b/etc/bootstrap/bbot-bootstrap-clang.bat
index 71c6de2..5b7f52e 100644
--- a/etc/bootstrap/bbot-bootstrap-msvc-15.bat
+++ b/etc/bootstrap/bbot-bootstrap-clang.bat
@@ -1,14 +1,22 @@
@echo off
-rem file : etc/bootstrap/bbot-bootstrap-msvc-15.bat
+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
-set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
-set "VCVARS=%MSVC%\VC\Auxiliary\Build\vcvars64.bat"
+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"
@@ -28,10 +36,12 @@ if exist %INSTALL%\bin\bbot-worker.exe (
goto end
)
-rem Setup the compiler for the toolchain.
+rem Setup the MSVC environment.
rem
-call "%VCVARS%"
-if errorlevel 1 goto error
+if not "_%MSVC%_" == "__" (
+ call "%MSVC%\%VCVARS%"
+ if errorlevel 1 goto error
+)
rem Use bootstrap tools.
rem
@@ -111,15 +121,23 @@ del trust
@rem
+@rem Switch to the bootstrapped utilities/toolchain.
+@rem
+@set "PATH=%INSTALL%\bin;%PATH%"
+
+
+@rem
@rem Bootstrap and install the toolchain.
@rem
@for /D %%d in (build2-toolchain-*) do set "bstrap=%%d"
cd %bstrap%
+@rem Bootstrap in parallel using GNU make (which is part of baseutils).
+@rem
@rem Note: executing in a separate cmd.exe to preserve the echo mode.
@rem
-cmd /C build-msvc.bat --timeout %TIMEOUT% --install-dir %INSTALL%^
- --trust %trust%
+cmd /C build-mingw.bat --make mingw32-make --make -j%NUMBER_OF_PROCESSORS%^
+ --timeout %TIMEOUT% --install-dir %INSTALL% --trust %trust% %CXX%
@if errorlevel 1 goto error
cd ..
@@ -128,12 +146,6 @@ rmdir /S /Q %bstrap%
@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"
diff --git a/etc/bootstrap/bbot-bootstrap-mingw.bat b/etc/bootstrap/bbot-bootstrap-mingw.bat
index e1496cc..ef87ec7 100644
--- a/etc/bootstrap/bbot-bootstrap-mingw.bat
+++ b/etc/bootstrap/bbot-bootstrap-mingw.bat
@@ -131,8 +131,7 @@ del trust
@for /D %%d in (build2-toolchain-*) do set "bstrap=%%d"
cd %bstrap%
-@rem Bootstrap in parallel using GNU make (which is part of our mingw
-@rem toolchain).
+@rem Bootstrap in parallel using GNU make (which is part of baseutils).
@rem
@rem Note: executing in a separate cmd.exe to preserve the echo mode.
@rem
diff --git a/etc/bootstrap/bbot-bootstrap-msvc-16.bat b/etc/bootstrap/bbot-bootstrap-msvc.bat
index 6091fff..37eae21 100644
--- a/etc/bootstrap/bbot-bootstrap-msvc-16.bat
+++ b/etc/bootstrap/bbot-bootstrap-msvc.bat
@@ -1,13 +1,14 @@
@echo off
-rem file : etc/bootstrap/bbot-bootstrap-msvc-16.bat
+rem file : etc/bootstrap/bbot-bootstrap-msvc.bat
rem copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
rem license : TBC; see accompanying LICENSE file
setlocal EnableExtensions EnableDelayedExpansion
+rem set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
-set "VCVARS=%MSVC%\VC\Auxiliary\Build\vcvars64.bat"
+set "VCVARS=VC\Auxiliary\Build\vcvars64.bat"
set "BUILD=C:\tmp"
set "INSTALL=C:\build2"
@@ -30,7 +31,7 @@ if exist %INSTALL%\bin\bbot-worker.exe (
rem Setup the compiler for the toolchain.
rem
-call "%VCVARS%"
+call "%MSVC%\%VCVARS%"
if errorlevel 1 goto error
rem Use bootstrap tools.
diff --git a/etc/environments/default-clang.bat b/etc/environments/default-clang.bat
new file mode 100644
index 0000000..52e0e4a
--- /dev/null
+++ b/etc/environments/default-clang.bat
@@ -0,0 +1,71 @@
+@echo off
+
+rem file : etc/environments/default-clang.bat
+rem copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+rem license : TBC; see accompanying LICENSE file
+
+rem
+rem Environment setup script for C/C++ compilation with Clang targeting
+rem MSVC.
+rem
+
+rem %1 - target
+rem %2 - bbot executable
+rem %3+ - bbot options
+
+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
+rem Note also that MSVC_VER must always be set.
+
+rem set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
+rem set "MSVC_VER=14.1"
+
+set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
+set "MSVC_VER=14.2"
+
+set "VCVARS32=VC\Auxiliary\Build\vcvarsamd64_x86.bat"
+set "VCVARS64=VC\Auxiliary\Build\vcvars64.bat"
+
+set "CXX=clang++"
+
+rem Based on target determine what we are building.
+rem
+if "_%1_" == "_x86_64-microsoft-win32-msvc%MSVC_VER%_" (
+ set "VCVARS=%VCVARS64%"
+ set "mode=config.cc.coptions+=-m64"
+) else (
+ if "_%1_" == "_i686-microsoft-win32-msvc%MSVC_VER%_" (
+ set "VCVARS=%VCVARS32%"
+ set "mode=config.cc.coptions+=-m32"
+ ) else (
+ if "_%1_" == "_i386-microsoft-win32-msvc%MSVC_VER%_" (
+ set "VCVARS=%VCVARS32%"
+ set "mode=config.cc.coptions+=-m32"
+ ) else (
+ echo error: unknown target %1
+ goto error
+ )
+ )
+)
+
+if not "_%MSVC%_" == "__" (
+ call "%MSVC%\%VCVARS%"
+ if errorlevel 1 goto error
+)
+
+%2 %3 %4 %5 %6 %7 %8 %9 cc config.c=cl config.cxx=%CXX% %mode%
+if errorlevel 1 goto error
+
+goto end
+
+:error
+@echo off
+endlocal
+exit /b 1
+
+:end
+endlocal
diff --git a/etc/environments/default-msvc-15.bat b/etc/environments/default-msvc-15.bat
deleted file mode 100644
index 9d746c6..0000000
--- a/etc/environments/default-msvc-15.bat
+++ /dev/null
@@ -1,49 +0,0 @@
-@echo off
-
-rem file : etc/environments/default-msvc-15.bat
-rem copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-rem license : TBC; see accompanying LICENSE file
-
-rem
-rem Environment setup script for C/C++ compilation with Visual Studio 15.
-rem
-
-rem %1 - target
-rem %2 - bbot executable
-rem %3+ - bbot options
-
-setlocal EnableExtensions EnableDelayedExpansion
-
-set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
-
-set "VCVARS32=%MSVC%\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
-set "VCVARS64=%MSVC%\VC\Auxiliary\Build\vcvars64.bat"
-
-rem Based on target determine what we are building.
-rem
-if "_%1_" == "_x86_64-microsoft-win32-msvc14.1_" (
- set "VCVARS=%VCVARS64%"
-) else (
- if "_%1_" == "_i386-microsoft-win32-msvc14.1_" (
- set "VCVARS=%VCVARS32%"
- ) else (
- echo error: unknown target %1
- goto error
- )
-)
-
-call "%VCVARS%"
-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-16.bat b/etc/environments/default-msvc.bat
index f8c5055..a7d4f16 100644
--- a/etc/environments/default-msvc-16.bat
+++ b/etc/environments/default-msvc.bat
@@ -1,11 +1,11 @@
@echo off
-rem file : etc/environments/default-msvc-16.bat
+rem file : etc/environments/default-msvc.bat
rem copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
rem license : TBC; see accompanying LICENSE file
rem
-rem Environment setup script for C/C++ compilation with Visual Studio 16.
+rem Environment setup script for C/C++ compilation with Visual Studio.
rem
rem %1 - target
@@ -14,25 +14,33 @@ rem %3+ - bbot options
setlocal EnableExtensions EnableDelayedExpansion
+rem set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
+rem set "MSVC_VER=14.1"
+
set "MSVC=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"
+set "MSVC_VER=14.2"
-set "VCVARS32=%MSVC%\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
-set "VCVARS64=%MSVC%\VC\Auxiliary\Build\vcvars64.bat"
+set "VCVARS32=VC\Auxiliary\Build\vcvarsamd64_x86.bat"
+set "VCVARS64=VC\Auxiliary\Build\vcvars64.bat"
rem Based on target determine what we are building.
rem
-if "_%1_" == "_x86_64-microsoft-win32-msvc14.2_" (
+if "_%1_" == "_x86_64-microsoft-win32-msvc%MSVC_VER%_" (
set "VCVARS=%VCVARS64%"
) else (
- if "_%1_" == "_i386-microsoft-win32-msvc14.2_" (
+ if "_%1_" == "_i686-microsoft-win32-msvc%MSVC_VER%_" (
set "VCVARS=%VCVARS32%"
) else (
- echo error: unknown target %1
- goto error
+ if "_%1_" == "_i386-microsoft-win32-msvc%MSVC_VER%_" (
+ set "VCVARS=%VCVARS32%"
+ ) else (
+ echo error: unknown target %1
+ goto error
+ )
)
)
-call "%VCVARS%"
+call "%MSVC%\%VCVARS%"
if errorlevel 1 goto error
%2 %3 %4 %5 %6 %7 %8 %9 cc config.c=cl config.cxx=cl