aboutsummaryrefslogtreecommitdiff
path: root/etc/environments/default-clang.bat
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 /etc/environments/default-clang.bat
parentb6e555163b0fed313282f193f3aa20318ad70c07 (diff)
Add bootstrap/environment batch files for Clang targeting MSVC
Diffstat (limited to 'etc/environments/default-clang.bat')
-rw-r--r--etc/environments/default-clang.bat71
1 files changed, 71 insertions, 0 deletions
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