diff options
-rw-r--r-- | INSTALL | 4 | ||||
-rwxr-xr-x | cl-15u3-32 | 10 | ||||
-rwxr-xr-x | cl-15u3-64 | 10 | ||||
-rwxr-xr-x | lib-15u3-32 | 10 | ||||
-rwxr-xr-x | lib-15u3-64 | 10 | ||||
-rwxr-xr-x | link-15u3-32 | 10 | ||||
-rwxr-xr-x | link-15u3-64 | 10 | ||||
-rwxr-xr-x | msvc-15/msvc-15u3-32 | 45 | ||||
-rwxr-xr-x | msvc-15/msvc-15u3-64 | 45 | ||||
-rwxr-xr-x | msvc-common/msvc-cl-common | 24 | ||||
-rwxr-xr-x | mt-15u3-32 | 10 | ||||
-rwxr-xr-x | mt-15u3-64 | 10 | ||||
-rwxr-xr-x | rc-15u3-32 | 10 | ||||
-rwxr-xr-x | rc-15u3-64 | 10 |
14 files changed, 214 insertions, 4 deletions
@@ -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" |