aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INSTALL4
-rwxr-xr-xcl-15u3-3210
-rwxr-xr-xcl-15u3-6410
-rwxr-xr-xlib-15u3-3210
-rwxr-xr-xlib-15u3-6410
-rwxr-xr-xlink-15u3-3210
-rwxr-xr-xlink-15u3-6410
-rwxr-xr-xmsvc-15/msvc-15u3-3245
-rwxr-xr-xmsvc-15/msvc-15u3-6445
-rwxr-xr-xmsvc-common/msvc-cl-common24
-rwxr-xr-xmt-15u3-3210
-rwxr-xr-xmt-15u3-6410
-rwxr-xr-xrc-15u3-3210
-rwxr-xr-xrc-15u3-6410
14 files changed, 214 insertions, 4 deletions
diff --git a/INSTALL b/INSTALL
index 7656d2a..cdb894d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -237,7 +237,6 @@ To:
And add Wine overrides (run winecfg, select the "Libraries" tab, then enter
the DLL name and press "Add").
-------------
To discover the list of DLLs, run cl-14 to compile and link an executable and
then run the executable itself (see Test below): any DLL that causes an error
@@ -322,6 +321,9 @@ The following overrides are necessary because of some unimplemented functions:
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
+Note also that if you plan to run tests built against the debug runtime, then
+also copy ucrtbased.dll, vcruntime140d.dll, and msvcp140d.dll from Windows
+Kits/10/bin/.../ucrt/ and VC/Redist/.../debug_noredist/.
Test
----
diff --git a/cl-15u3-32 b/cl-15u3-32
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/cl-15u3-32
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/cl-15u3-64 b/cl-15u3-64
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/cl-15u3-64
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/lib-15u3-32 b/lib-15u3-32
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/lib-15u3-32
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/lib-15u3-64 b/lib-15u3-64
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/lib-15u3-64
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/link-15u3-32 b/link-15u3-32
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/link-15u3-32
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/link-15u3-64 b/link-15u3-64
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/link-15u3-64
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/msvc-15/msvc-15u3-32 b/msvc-15/msvc-15u3-32
new file mode 100755
index 0000000..3c20cec
--- /dev/null
+++ b/msvc-15/msvc-15u3-32
@@ -0,0 +1,45 @@
+#! /usr/bin/env bash
+
+# file : msvc-15/msvc-15u3-32
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# MSVC 15 32-bit setup/configuration (note: using 64-to-32 cross-compiler).
+#
+# Should set the SDKBIN, VCBIN, VCDLL, INCLUDE, and LIB variables.
+#
+if [ -z "$MSVC_INSTALLDIR" ]; then
+ MSVC_INSTALLDIR="Microsoft Visual Studio 15.0"
+fi
+
+if [ -z "$MSVC_SDKVERSION" ]; then
+ source "$src_dir/msvc-common/msvc-sdk-common"
+ MSVC_SDKVERSION="$(windows10_sdkversion)"
+fi
+
+# SDK
+#
+SDK="C:\\Program Files (x86)\\Windows Kits\\10"
+SDKBIN="$SDK\\bin\\x86"
+SDKVER="$MSVC_SDKVERSION.0"
+
+INCLUDE="$SDK\\include\\$SDKVER\\shared;$SDK\\include\\$SDKVER\\um;$SDK\\include\\$SDKVER\\winrt"
+LIB="$SDK\\lib\\$SDKVER\\um\\x86"
+
+# CRT
+#
+CRT="C:\\Program Files (x86)\\Windows Kits\\10"
+CRTVER="$MSVC_SDKVERSION.0"
+
+INCLUDE="$CRT\\include\\$CRTVER\\ucrt;$INCLUDE"
+LIB="$CRT\\lib\\$CRTVER\\ucrt\\x86;$LIB"
+
+# VC
+#
+VC="C:\\Program Files (x86)\\$MSVC_INSTALLDIR\\VC\\Tools\\MSVC\\14.11.25503"
+VCBIN="$VC\\bin\\HostX64\\x86"
+VCDLL="$VC\\bin\\HostX64\\x64"
+
+INCLUDE="$VC\\include;$INCLUDE"
+IFCPATH="$VC\\ifc\\x86"
+LIB="$VC\\lib\\x86;$LIB"
diff --git a/msvc-15/msvc-15u3-64 b/msvc-15/msvc-15u3-64
new file mode 100755
index 0000000..5704cc9
--- /dev/null
+++ b/msvc-15/msvc-15u3-64
@@ -0,0 +1,45 @@
+#! /usr/bin/env bash
+
+# file : msvc-15/msvc-15u3-64
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# MSVC 64-bit setup/configuration.
+#
+# Should set the SDKBIN, VCBIN, VCDLL, INCLUDE, and LIB variables.
+#
+if [ -z "$MSVC_INSTALLDIR" ]; then
+ MSVC_INSTALLDIR="Microsoft Visual Studio 15.0"
+fi
+
+if [ -z "$MSVC_SDKVERSION" ]; then
+ source "$src_dir/msvc-common/msvc-sdk-common"
+ MSVC_SDKVERSION="$(windows10_sdkversion)"
+fi
+
+# SDK
+#
+SDK="C:\\Program Files (x86)\\Windows Kits\\10"
+SDKBIN="$SDK\\bin\\x64"
+SDKVER="$MSVC_SDKVERSION.0"
+
+INCLUDE="$SDK\\include\\$SDKVER\\shared;$SDK\\include\\$SDKVER\\um;$SDK\\include\\$SDKVER\\winrt"
+LIB="$SDK\\lib\\$SDKVER\\um\\x64"
+
+# CRT
+#
+CRT="C:\\Program Files (x86)\\Windows Kits\\10"
+CRTVER="$MSVC_SDKVERSION.0"
+
+INCLUDE="$CRT\\include\\$CRTVER\\ucrt;$INCLUDE"
+LIB="$CRT\\lib\\$CRTVER\\ucrt\\x64;$LIB"
+
+# VC
+#
+VC="C:\\Program Files (x86)\\$MSVC_INSTALLDIR\\VC\\Tools\\MSVC\\14.11.25503"
+VCBIN="$VC\\bin\\HostX64\\x64"
+VCDLL="$VC\\bin\\HostX64\\x64"
+
+INCLUDE="$VC\\include;$INCLUDE"
+IFCPATH="$VC\\ifc\\x64"
+LIB="$VC\\lib\\x64;$LIB"
diff --git a/msvc-common/msvc-cl-common b/msvc-common/msvc-cl-common
index a5eb069..66d0773 100755
--- a/msvc-common/msvc-cl-common
+++ b/msvc-common/msvc-cl-common
@@ -36,13 +36,28 @@ diag=1
#
args=()
+# Whether to export IFCPATH. We suppress it if /module:stdIfcDir is specified
+# since IFCPATH path (misguidedly) takes precedence.
+#
+ifc=true
+
while [ $# -gt 0 ]; do
case $1 in
# /I <dir>, /AI <dir>
+ # /module:output <file>, /module:reference <file>
+ # /module:search <dir>, /module:stdIfcDir <dir>
#
- [/-]I | \
- [/-]AI)
+ [/-]I | \
+ [/-]AI | \
+ [/-]module:output | \
+ [/-]module:reference | \
+ [/-]module:search | \
+ [/-]module:stdIfcDir)
+ if [ "$1" = "/module:stdIfcDir" ]; then
+ ifc=
+ fi
+
args=("${args[@]}" "$1")
shift
args=("${args[@]}" "$(translate $1)")
@@ -144,9 +159,12 @@ while [ $# -gt 0 ]; do
done
export INCLUDE
-export IFCPATH
export LIB
+if [ "$ifc" = "true" ]; then
+ export IFCPATH
+fi
+
# The linker may need to run mt.exe which is in the SDK.
#
export WINEPATH="$VCBIN;$VCDLL;$SDKBIN;$WINEPATH"
diff --git a/mt-15u3-32 b/mt-15u3-32
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/mt-15u3-32
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/mt-15u3-64 b/mt-15u3-64
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/mt-15u3-64
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/rc-15u3-32 b/rc-15u3-32
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/rc-15u3-32
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"
diff --git a/rc-15u3-64 b/rc-15u3-64
new file mode 100755
index 0000000..0d34aea
--- /dev/null
+++ b/rc-15u3-64
@@ -0,0 +1,10 @@
+#! /usr/bin/env bash
+
+# The contents of these files are all identical; the information is carries by
+# the file name which should be in the form <tool>-<version>-<target>. See
+# msvc-dispatch for details.
+#
+src_exe="$(realpath ${BASH_SOURCE[0]})"
+src_dir="$(dirname "$src_exe")"
+
+source "$src_dir/msvc-dispatch"