diff options
-rw-r--r-- | INSTALL | 49 | ||||
-rwxr-xr-x | cl-14.0-32 (renamed from cl-14u0-32) | 0 | ||||
-rwxr-xr-x | cl-14.2-32 (renamed from cl-14u2-32) | 0 | ||||
-rwxr-xr-x | cl-14.2-64 (renamed from cl-14u2-64) | 0 | ||||
-rwxr-xr-x | cl-14.3-32 (renamed from cl-14u3-32) | 0 | ||||
-rwxr-xr-x | cl-14.3-64 (renamed from cl-14u3-64) | 0 | ||||
-rwxr-xr-x | cl-15.0-32 (renamed from cl-15u0-32) | 0 | ||||
-rwxr-xr-x | cl-15.0-64 (renamed from cl-15u0-64) | 0 | ||||
-rwxr-xr-x | cl-15.3-32 (renamed from cl-15u3-32) | 0 | ||||
-rwxr-xr-x | cl-15.3-64 (renamed from cl-15u3-64) | 0 | ||||
-rwxr-xr-x | cl-15.5-32 (renamed from cl-15u5-32) | 0 | ||||
-rwxr-xr-x | cl-15.5-64 (renamed from cl-15u5-64) | 0 | ||||
-rwxr-xr-x | cl-15.6-32 (renamed from cl-15u6-32) | 0 | ||||
-rwxr-xr-x | cl-15.6-64 (renamed from cl-15u6-64) | 0 | ||||
-rwxr-xr-x | cl-15.7-32 (renamed from cl-15u7-32) | 0 | ||||
-rwxr-xr-x | cl-15.7-64 (renamed from cl-15u7-64) | 0 | ||||
-rwxr-xr-x | cl-16.0-32 (renamed from lib-14u0-32) | 0 | ||||
-rwxr-xr-x | cl-16.0-64 (renamed from lib-14u2-32) | 0 | ||||
-rwxr-xr-x | lib-14.0-32 (renamed from lib-14u2-64) | 0 | ||||
-rwxr-xr-x | lib-14.2-32 (renamed from lib-14u3-32) | 0 | ||||
-rwxr-xr-x | lib-14.2-64 (renamed from lib-14u3-64) | 0 | ||||
-rwxr-xr-x | lib-14.3-32 (renamed from lib-15u0-32) | 0 | ||||
-rwxr-xr-x | lib-14.3-64 (renamed from lib-15u0-64) | 0 | ||||
-rwxr-xr-x | lib-15.0-32 (renamed from lib-15u3-32) | 0 | ||||
-rwxr-xr-x | lib-15.0-64 (renamed from lib-15u3-64) | 0 | ||||
-rwxr-xr-x | lib-15.3-32 (renamed from lib-15u5-32) | 0 | ||||
-rwxr-xr-x | lib-15.3-64 (renamed from lib-15u5-64) | 0 | ||||
-rwxr-xr-x | lib-15.5-32 (renamed from lib-15u6-32) | 0 | ||||
-rwxr-xr-x | lib-15.5-64 (renamed from lib-15u6-64) | 0 | ||||
-rwxr-xr-x | lib-15.6-32 (renamed from lib-15u7-32) | 0 | ||||
-rwxr-xr-x | lib-15.6-64 (renamed from lib-15u7-64) | 0 | ||||
-rwxr-xr-x | lib-15.7-32 (renamed from link-14u0-32) | 0 | ||||
-rwxr-xr-x | lib-15.7-64 (renamed from link-14u2-32) | 0 | ||||
-rwxr-xr-x | lib-16.0-32 (renamed from link-14u2-64) | 0 | ||||
-rwxr-xr-x | lib-16.0-64 (renamed from link-14u3-32) | 0 | ||||
-rwxr-xr-x | link-14.0-32 (renamed from link-14u3-64) | 0 | ||||
-rwxr-xr-x | link-14.2-32 (renamed from link-15u0-32) | 0 | ||||
-rwxr-xr-x | link-14.2-64 (renamed from link-15u0-64) | 0 | ||||
-rwxr-xr-x | link-14.3-32 (renamed from link-15u3-32) | 0 | ||||
-rwxr-xr-x | link-14.3-64 (renamed from link-15u3-64) | 0 | ||||
-rwxr-xr-x | link-15.0-32 (renamed from link-15u5-32) | 0 | ||||
-rwxr-xr-x | link-15.0-64 (renamed from link-15u5-64) | 0 | ||||
-rwxr-xr-x | link-15.3-32 (renamed from link-15u6-32) | 0 | ||||
-rwxr-xr-x | link-15.3-64 (renamed from link-15u6-64) | 0 | ||||
-rwxr-xr-x | link-15.5-32 (renamed from link-15u7-32) | 0 | ||||
-rwxr-xr-x | link-15.5-64 (renamed from link-15u7-64) | 0 | ||||
-rwxr-xr-x | link-15.6-32 (renamed from mt-14u0-32) | 0 | ||||
-rwxr-xr-x | link-15.6-64 (renamed from mt-14u2-32) | 0 | ||||
-rwxr-xr-x | link-15.7-32 (renamed from mt-14u2-64) | 0 | ||||
-rwxr-xr-x | link-15.7-64 (renamed from mt-14u3-32) | 0 | ||||
-rwxr-xr-x | link-16.0-32 (renamed from mt-14u3-64) | 0 | ||||
-rwxr-xr-x | link-16.0-64 (renamed from mt-15u0-32) | 0 | ||||
-rwxr-xr-x | msvc-14/msvc-14.0-32 (renamed from msvc-14/msvc-14u0-32) | 2 | ||||
-rwxr-xr-x | msvc-14/msvc-14.2-32 (renamed from msvc-14/msvc-14u2-32) | 2 | ||||
-rwxr-xr-x | msvc-14/msvc-14.2-64 (renamed from msvc-14/msvc-14u2-64) | 2 | ||||
-rwxr-xr-x | msvc-14/msvc-14.3-32 (renamed from msvc-14/msvc-14u3-32) | 6 | ||||
-rwxr-xr-x | msvc-14/msvc-14.3-64 (renamed from msvc-14/msvc-14u3-64) | 6 | ||||
-rwxr-xr-x | msvc-15/msvc-15.0-32 (renamed from msvc-15/msvc-15u0-32) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.0-64 (renamed from msvc-15/msvc-15u0-64) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.3-32 (renamed from msvc-15/msvc-15u3-32) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.3-64 (renamed from msvc-15/msvc-15u3-64) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.5-32 (renamed from msvc-15/msvc-15u5-32) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.5-64 (renamed from msvc-15/msvc-15u5-64) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.6-32 (renamed from msvc-15/msvc-15u6-32) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.6-64 (renamed from msvc-15/msvc-15u6-64) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.7-32 (renamed from msvc-15/msvc-15u7-32) | 2 | ||||
-rwxr-xr-x | msvc-15/msvc-15.7-64 (renamed from msvc-15/msvc-15u7-64) | 2 | ||||
-rwxr-xr-x | msvc-16/msvc-16.0-32 | 54 | ||||
-rwxr-xr-x | msvc-16/msvc-16.0-64 | 45 | ||||
-rwxr-xr-x | msvc-common/msvc-link-common | 7 | ||||
-rwxr-xr-x | msvc-dispatch | 13 | ||||
-rwxr-xr-x | mt-14.0-32 (renamed from mt-15u0-64) | 0 | ||||
-rwxr-xr-x | mt-14.2-32 (renamed from mt-15u3-32) | 0 | ||||
-rwxr-xr-x | mt-14.2-64 (renamed from mt-15u3-64) | 0 | ||||
-rwxr-xr-x | mt-14.3-32 (renamed from mt-15u5-32) | 0 | ||||
-rwxr-xr-x | mt-14.3-64 (renamed from mt-15u5-64) | 0 | ||||
-rwxr-xr-x | mt-15.0-32 (renamed from mt-15u6-32) | 0 | ||||
-rwxr-xr-x | mt-15.0-64 (renamed from mt-15u6-64) | 0 | ||||
-rwxr-xr-x | mt-15.3-32 (renamed from mt-15u7-32) | 0 | ||||
-rwxr-xr-x | mt-15.3-64 (renamed from mt-15u7-64) | 0 | ||||
-rwxr-xr-x | mt-15.5-32 (renamed from rc-14u0-32) | 0 | ||||
-rwxr-xr-x | mt-15.5-64 (renamed from rc-14u2-32) | 0 | ||||
-rwxr-xr-x | mt-15.6-32 (renamed from rc-14u2-64) | 0 | ||||
-rwxr-xr-x | mt-15.6-64 (renamed from rc-14u3-32) | 0 | ||||
-rwxr-xr-x | mt-15.7-32 (renamed from rc-14u3-64) | 0 | ||||
-rwxr-xr-x | mt-15.7-64 (renamed from rc-15u0-32) | 0 | ||||
-rwxr-xr-x | mt-16.0-32 (renamed from rc-15u0-64) | 0 | ||||
-rwxr-xr-x | mt-16.0-64 (renamed from rc-15u3-32) | 0 | ||||
-rwxr-xr-x | rc-14.0-32 (renamed from rc-15u3-64) | 0 | ||||
-rwxr-xr-x | rc-14.2-32 (renamed from rc-15u5-32) | 0 | ||||
-rwxr-xr-x | rc-14.2-64 (renamed from rc-15u5-64) | 0 | ||||
-rwxr-xr-x | rc-14.3-32 (renamed from rc-15u6-32) | 0 | ||||
-rwxr-xr-x | rc-14.3-64 (renamed from rc-15u6-64) | 0 | ||||
-rwxr-xr-x | rc-15.0-32 (renamed from rc-15u7-32) | 0 | ||||
-rwxr-xr-x | rc-15.0-64 (renamed from rc-15u7-64) | 0 | ||||
-rwxr-xr-x | rc-15.3-32 | 10 | ||||
-rwxr-xr-x | rc-15.3-64 | 10 | ||||
-rwxr-xr-x | rc-15.5-32 | 10 | ||||
-rwxr-xr-x | rc-15.5-64 | 10 | ||||
-rwxr-xr-x | rc-15.6-32 | 10 | ||||
-rwxr-xr-x | rc-15.6-64 | 10 | ||||
-rwxr-xr-x | rc-15.7-32 | 10 | ||||
-rwxr-xr-x | rc-15.7-64 | 10 | ||||
-rwxr-xr-x | rc-16.0-32 | 10 | ||||
-rwxr-xr-x | rc-16.0-64 | 10 |
105 files changed, 266 insertions, 40 deletions
@@ -18,7 +18,7 @@ form: Where: <tool> is one of 'cl' 'link' 'lib' 'mt' 'rc' -<version> is the Visual Studio version, for example, 11, 12, 14u3, 15rc1 +<version> is the Visual Studio version, for example, 11, 12, 14.3, 15.0 <target> is the compiler target, for example, 32 (x86), 64 (x86_64). There are also the "configuration" scripts, msvc-NN/msvc-<version>-<target>, @@ -44,7 +44,7 @@ you can simply add symlinks to the scripts there. This way you can also choose shorter tool names, for example: for t in cl link lib mt rc; do \ - ln -s .../msvc-linux/$t-14u2-64 ~/bin/$t-14; done + ln -s .../msvc-linux/$t-14.2-64 ~/bin/$t-14; done While you can modify the configuration scripts, retaining such modifications over updates will be tedious. As a result, there are several environment @@ -54,14 +54,14 @@ common configuration values. Currently you can override WINEPREFIX, INSTALLDIR, and SDKVERSION via the following environment variable hierarchy (from highest to lowest precedence): -MSVC_<MAJOR><MINOR>_* # MSVC_14U2_INSTALLDIR -MSVC_<MAJOR>_* # MSVC_14_INSTALLDIR -MSVC_* # MSVC_INSTALLDIR +MSVC_<MAJOR>_<MINOR>_* # MSVC_14_2_INSTALLDIR +MSVC_<MAJOR>_* # MSVC_14_INSTALLDIR +MSVC_* # MSVC_INSTALLDIR The WINEPREFIX value corresponds to the WINEPREFIX Wine environment variable that allows one to use an alternative (to ~/.wine) root directory. You can -use it, for example, to maintain multiple Visual Studio updates (e.g., 14u1, -14u2, 14u3) which otherwise cannot coexist in a single installation. +use it, for example, to maintain multiple Visual Studio updates (e.g., 14.1, +14.2, 14.3) which otherwise cannot coexist in a single installation. The INSTALLDIR directory can be used to alter the Visual Studio installation directory name (not path; the default is "Microsoft Visual Studio NN.0"). @@ -75,7 +75,7 @@ It should be in the 10.0.NNNNN form. If it is not specified, then the latest installed is used. Note that this value does not apply to Windows 8.1 and earlier SDKs; those versions are hardcoded in the confguration scripts. -Note also the the below instructions include a call to a script that adds +Note also that the below instructions include a call to a script that adds lower-case symlinks for upper-case named headers. This normally fixes the bulk of the issues associated #include directives that spell header names differently compared to the actual file names. There are, however, rare @@ -214,7 +214,7 @@ $ cp -r "/mnt/Program Files (x86)/Microsoft Visual Studio 14.0/VC" \ $ cp "/mnt/Program Files (x86)/Microsoft Visual Studio 14.0/VC/redist/x86/Microsoft.VC140.CRT/msvcp140.dll" \ ".wine/drive_c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/" -Remove Microsoft's "experience improvement data uploade" which crashes: +Remove Microsoft's "experience improvement data uploader" which crashes: $ find ".wine/drive_c/Program Files (x86)/Microsoft Visual Studio 14.0/" \ -name vctip.exe -exec rm -f '{}' ';' @@ -284,6 +284,11 @@ $ mkdir -p ".wine/drive_c/Program Files (x86)/Microsoft Visual Studio 15.0" $ cp -r "/mnt/Program Files (x86)/Microsoft Visual Studio 15.0/VC" \ ".wine/drive_c/Program Files (x86)/Microsoft Visual Studio 15.0/" +Remove Microsoft's "experience improvement data uploader" which crashes: + +$ find ".wine/drive_c/Program Files (x86)/Microsoft Visual Studio 15.0/" \ + -name vctip.exe -exec rm -f '{}' ';' + $ mkdir -p ".wine/drive_c/Program Files (x86)/Windows Kits" $ cp -r "/mnt/Program Files (x86)/Windows Kits/10" \ ".wine/drive_c/Program Files (x86)/Windows Kits/" @@ -296,7 +301,7 @@ $ etc/lowercase-headers \ Installing via the redistributable DLLs still does not work as of Wine 1.9.8. Instead, we have to manually copy a bunch of DLLs from: -.wine/.../VC/Redist/MSVC/14.10.NNNNN/{x86 x64}/Microsoft.VC150.CRT/ +.wine/.../VC/Redist/MSVC/14.10.NNNNN/{x86 x64}/Microsoft.VC141.CRT/ And: @@ -335,6 +340,24 @@ 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/. + +Copy and Setup Visual Studio 16 +------------------------------- + +The setup for 16 is similar to that of 15. Follow instructions in "Copy and +Setup Visual Studio 15", replacing year 2017 and version 15 with 2019 and 16, +respectively. + +Regarding the redistributable DLLs, note that for Wine 4.0 (Staging) only the +following overrides appear to be necessary: + + vcruntime140.dll + msvcp140.dll + +Also note that linking for 32-bit builds may fail (see msvc-16/msvc-16.0-32 +for details). + + Test ---- @@ -371,9 +394,9 @@ Note also that we use the 64-to-32-bit cross-compiler for 32-bit builds. Come up with Configuration(s) ----------------------------- -By examining the INCLUDE and LIB environment variables in the corresponding -Visual Studio Command Prompts, determine which SDK/CRT versions are used, -executable paths for the tools (use the where command), etc. +By examining the INCLUDE, IFCPATH and LIB environment variables in the +corresponding Visual Studio Command Prompts, determine which SDK/CRT versions +are used, executable paths for the tools (use the where command), etc. Based on this information create the corresponding configuration file(s) in msvc-NN/ subdirectory. Use the existing configuration from the closest version diff --git a/lib-14u2-64 b/lib-14.0-32 index 0d34aea..0d34aea 100755 --- a/lib-14u2-64 +++ b/lib-14.0-32 diff --git a/lib-14u3-32 b/lib-14.2-32 index 0d34aea..0d34aea 100755 --- a/lib-14u3-32 +++ b/lib-14.2-32 diff --git a/lib-14u3-64 b/lib-14.2-64 index 0d34aea..0d34aea 100755 --- a/lib-14u3-64 +++ b/lib-14.2-64 diff --git a/lib-15u0-32 b/lib-14.3-32 index 0d34aea..0d34aea 100755 --- a/lib-15u0-32 +++ b/lib-14.3-32 diff --git a/lib-15u0-64 b/lib-14.3-64 index 0d34aea..0d34aea 100755 --- a/lib-15u0-64 +++ b/lib-14.3-64 diff --git a/lib-15u3-32 b/lib-15.0-32 index 0d34aea..0d34aea 100755 --- a/lib-15u3-32 +++ b/lib-15.0-32 diff --git a/lib-15u3-64 b/lib-15.0-64 index 0d34aea..0d34aea 100755 --- a/lib-15u3-64 +++ b/lib-15.0-64 diff --git a/lib-15u5-32 b/lib-15.3-32 index 0d34aea..0d34aea 100755 --- a/lib-15u5-32 +++ b/lib-15.3-32 diff --git a/lib-15u5-64 b/lib-15.3-64 index 0d34aea..0d34aea 100755 --- a/lib-15u5-64 +++ b/lib-15.3-64 diff --git a/lib-15u6-32 b/lib-15.5-32 index 0d34aea..0d34aea 100755 --- a/lib-15u6-32 +++ b/lib-15.5-32 diff --git a/lib-15u6-64 b/lib-15.5-64 index 0d34aea..0d34aea 100755 --- a/lib-15u6-64 +++ b/lib-15.5-64 diff --git a/lib-15u7-32 b/lib-15.6-32 index 0d34aea..0d34aea 100755 --- a/lib-15u7-32 +++ b/lib-15.6-32 diff --git a/lib-15u7-64 b/lib-15.6-64 index 0d34aea..0d34aea 100755 --- a/lib-15u7-64 +++ b/lib-15.6-64 diff --git a/link-14u0-32 b/lib-15.7-32 index 0d34aea..0d34aea 100755 --- a/link-14u0-32 +++ b/lib-15.7-32 diff --git a/link-14u2-32 b/lib-15.7-64 index 0d34aea..0d34aea 100755 --- a/link-14u2-32 +++ b/lib-15.7-64 diff --git a/link-14u2-64 b/lib-16.0-32 index 0d34aea..0d34aea 100755 --- a/link-14u2-64 +++ b/lib-16.0-32 diff --git a/link-14u3-32 b/lib-16.0-64 index 0d34aea..0d34aea 100755 --- a/link-14u3-32 +++ b/lib-16.0-64 diff --git a/link-14u3-64 b/link-14.0-32 index 0d34aea..0d34aea 100755 --- a/link-14u3-64 +++ b/link-14.0-32 diff --git a/link-15u0-32 b/link-14.2-32 index 0d34aea..0d34aea 100755 --- a/link-15u0-32 +++ b/link-14.2-32 diff --git a/link-15u0-64 b/link-14.2-64 index 0d34aea..0d34aea 100755 --- a/link-15u0-64 +++ b/link-14.2-64 diff --git a/link-15u3-32 b/link-14.3-32 index 0d34aea..0d34aea 100755 --- a/link-15u3-32 +++ b/link-14.3-32 diff --git a/link-15u3-64 b/link-14.3-64 index 0d34aea..0d34aea 100755 --- a/link-15u3-64 +++ b/link-14.3-64 diff --git a/link-15u5-32 b/link-15.0-32 index 0d34aea..0d34aea 100755 --- a/link-15u5-32 +++ b/link-15.0-32 diff --git a/link-15u5-64 b/link-15.0-64 index 0d34aea..0d34aea 100755 --- a/link-15u5-64 +++ b/link-15.0-64 diff --git a/link-15u6-32 b/link-15.3-32 index 0d34aea..0d34aea 100755 --- a/link-15u6-32 +++ b/link-15.3-32 diff --git a/link-15u6-64 b/link-15.3-64 index 0d34aea..0d34aea 100755 --- a/link-15u6-64 +++ b/link-15.3-64 diff --git a/link-15u7-32 b/link-15.5-32 index 0d34aea..0d34aea 100755 --- a/link-15u7-32 +++ b/link-15.5-32 diff --git a/link-15u7-64 b/link-15.5-64 index 0d34aea..0d34aea 100755 --- a/link-15u7-64 +++ b/link-15.5-64 diff --git a/mt-14u0-32 b/link-15.6-32 index 0d34aea..0d34aea 100755 --- a/mt-14u0-32 +++ b/link-15.6-32 diff --git a/mt-14u2-32 b/link-15.6-64 index 0d34aea..0d34aea 100755 --- a/mt-14u2-32 +++ b/link-15.6-64 diff --git a/mt-14u2-64 b/link-15.7-32 index 0d34aea..0d34aea 100755 --- a/mt-14u2-64 +++ b/link-15.7-32 diff --git a/mt-14u3-32 b/link-15.7-64 index 0d34aea..0d34aea 100755 --- a/mt-14u3-32 +++ b/link-15.7-64 diff --git a/mt-14u3-64 b/link-16.0-32 index 0d34aea..0d34aea 100755 --- a/mt-14u3-64 +++ b/link-16.0-32 diff --git a/mt-15u0-32 b/link-16.0-64 index 0d34aea..0d34aea 100755 --- a/mt-15u0-32 +++ b/link-16.0-64 diff --git a/msvc-14/msvc-14u0-32 b/msvc-14/msvc-14.0-32 index 5900bba..74de769 100755 --- a/msvc-14/msvc-14u0-32 +++ b/msvc-14/msvc-14.0-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-14/msvc-14u0-32 +# file : msvc-14/msvc-14.0-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-14/msvc-14u2-32 b/msvc-14/msvc-14.2-32 index 0286b5a..5a01648 100755 --- a/msvc-14/msvc-14u2-32 +++ b/msvc-14/msvc-14.2-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-14/msvc-14u2-32 +# file : msvc-14/msvc-14.2-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-14/msvc-14u2-64 b/msvc-14/msvc-14.2-64 index efd977b..669a1eb 100755 --- a/msvc-14/msvc-14u2-64 +++ b/msvc-14/msvc-14.2-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-14/msvc-14u2-64 +# file : msvc-14/msvc-14.2-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-14/msvc-14u3-32 b/msvc-14/msvc-14.3-32 index 36d6037..4905d2c 100755 --- a/msvc-14/msvc-14u3-32 +++ b/msvc-14/msvc-14.3-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-14/msvc-14u3-32 +# file : msvc-14/msvc-14.3-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file @@ -22,7 +22,7 @@ fi SDK="C:\\Program Files (x86)\\Windows Kits\\10" SDKBIN="$SDK\\bin\\x86" -# Originally "10.0.14393" (if upgrade 14u2) or "10.0.10240" (if clean install). +# Originally "10.0.14393" (if upgrade 14.2) or "10.0.10240" (if clean install). # SDKVER="$MSVC_SDKVERSION.0" @@ -33,7 +33,7 @@ LIB="$SDK\\lib\\$SDKVER\\um\\x86" # CRT="C:\\Program Files (x86)\\Windows Kits\\10" -# Originally "10.0.14393" (if upgrade 14u2) or "10.0.10240" (if clean install). +# Originally "10.0.14393" (if upgrade 14.2) or "10.0.10240" (if clean install). # CRTVER="$MSVC_SDKVERSION.0" diff --git a/msvc-14/msvc-14u3-64 b/msvc-14/msvc-14.3-64 index 3d775d6..64e4c12 100755 --- a/msvc-14/msvc-14u3-64 +++ b/msvc-14/msvc-14.3-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-14/msvc-14u3-64 +# file : msvc-14/msvc-14.3-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file @@ -22,7 +22,7 @@ fi SDK="C:\\Program Files (x86)\\Windows Kits\\10" SDKBIN="$SDK\\bin\\x64" -# Originally "10.0.14393" (if upgrade 14u2) or "10.0.10240" (if clean install). +# Originally "10.0.14393" (if upgrade 14.2) or "10.0.10240" (if clean install). # SDKVER="$MSVC_SDKVERSION.0" @@ -33,7 +33,7 @@ LIB="$SDK\\lib\\$SDKVER\\um\\x64" # CRT="C:\\Program Files (x86)\\Windows Kits\\10" -# Originally "10.0.14393" (if upgrade 14u2) or "10.0.10240" (if clean install). +# Originally "10.0.14393" (if upgrade 14.2) or "10.0.10240" (if clean install). # CRTVER="$MSVC_SDKVERSION.0" diff --git a/msvc-15/msvc-15u0-32 b/msvc-15/msvc-15.0-32 index 7ebe072..1ac12b8 100755 --- a/msvc-15/msvc-15u0-32 +++ b/msvc-15/msvc-15.0-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u0-32 +# file : msvc-15/msvc-15.0-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u0-64 b/msvc-15/msvc-15.0-64 index 28cec73..34db54f 100755 --- a/msvc-15/msvc-15u0-64 +++ b/msvc-15/msvc-15.0-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u0-64 +# file : msvc-15/msvc-15.0-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u3-32 b/msvc-15/msvc-15.3-32 index bfca048..42ee2e5 100755 --- a/msvc-15/msvc-15u3-32 +++ b/msvc-15/msvc-15.3-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u3-32 +# file : msvc-15/msvc-15.3-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u3-64 b/msvc-15/msvc-15.3-64 index 085c03c..342f871 100755 --- a/msvc-15/msvc-15u3-64 +++ b/msvc-15/msvc-15.3-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u3-64 +# file : msvc-15/msvc-15.3-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u5-32 b/msvc-15/msvc-15.5-32 index e9524ec..482e764 100755 --- a/msvc-15/msvc-15u5-32 +++ b/msvc-15/msvc-15.5-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u5-32 +# file : msvc-15/msvc-15.5-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u5-64 b/msvc-15/msvc-15.5-64 index dbcbcb8..71672ab 100755 --- a/msvc-15/msvc-15u5-64 +++ b/msvc-15/msvc-15.5-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u5-64 +# file : msvc-15/msvc-15.5-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u6-32 b/msvc-15/msvc-15.6-32 index 08e6e98..e687e1f 100755 --- a/msvc-15/msvc-15u6-32 +++ b/msvc-15/msvc-15.6-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u6-32 +# file : msvc-15/msvc-15.6-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u6-64 b/msvc-15/msvc-15.6-64 index 272a682..7aa5544 100755 --- a/msvc-15/msvc-15u6-64 +++ b/msvc-15/msvc-15.6-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u6-64 +# file : msvc-15/msvc-15.6-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u7-32 b/msvc-15/msvc-15.7-32 index 133fc51..46d8bab 100755 --- a/msvc-15/msvc-15u7-32 +++ b/msvc-15/msvc-15.7-32 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u7-32 +# file : msvc-15/msvc-15.7-32 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-15/msvc-15u7-64 b/msvc-15/msvc-15.7-64 index 7586250..f2fd607 100755 --- a/msvc-15/msvc-15u7-64 +++ b/msvc-15/msvc-15.7-64 @@ -1,6 +1,6 @@ #! /usr/bin/env bash -# file : msvc-15/msvc-15u7-64 +# file : msvc-15/msvc-15.7-64 # copyright : Copyright (c) 2014-2019 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/msvc-16/msvc-16.0-32 b/msvc-16/msvc-16.0-32 new file mode 100755 index 0000000..022c4b4 --- /dev/null +++ b/msvc-16/msvc-16.0-32 @@ -0,0 +1,54 @@ +#! /usr/bin/env bash + +# file : msvc-16/msvc-16.0-32 +# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +# MSVC 16 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 16.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" +SDKVER="$MSVC_SDKVERSION.0" +SDKBIN="$SDK\\bin\\$SDKVER\\x86" + +INCLUDE="$SDK\\include\\$SDKVER\\shared;$SDK\\include\\$SDKVER\\um;$SDK\\include\\$SDKVER\\winrt;$SDK\\include\\$SDKVER\\cppwinrt" +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.20.27404" + +# Note that running cross-linker may end up with the following error: +# +# LINK : fatal error LNK1158: cannot run 'cvtres.exe' +# +# The native linker doesn't fail but may run out of memory in some cases. One +# workaround for the above error is to symlinking HostX64/x64/cvtres.exe into +# HostX64/x86/. However, let's postpone it until really necessary. +# +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-16/msvc-16.0-64 b/msvc-16/msvc-16.0-64 new file mode 100755 index 0000000..4f8a70f --- /dev/null +++ b/msvc-16/msvc-16.0-64 @@ -0,0 +1,45 @@ +#! /usr/bin/env bash + +# file : msvc-16/msvc-16.0-64 +# copyright : Copyright (c) 2014-2019 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 16.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" +SDKVER="$MSVC_SDKVERSION.0" +SDKBIN="$SDK\\bin\\$SDKVER\\x64" + +INCLUDE="$SDK\\include\\$SDKVER\\shared;$SDK\\include\\$SDKVER\\um;$SDK\\include\\$SDKVER\\winrt;$SDK\\include\\$SDKVER\\cppwinrt" +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.20.27404" +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-link-common b/msvc-common/msvc-link-common index d0c2186..fdddf61 100755 --- a/msvc-common/msvc-link-common +++ b/msvc-common/msvc-link-common @@ -104,7 +104,8 @@ while [ $# -gt 0 ]; do ;; [/-]DEFAULTLIB:* | \ - [/-]PDBALTPATH:*) + [/-]PDBALTPATH:* | \ + [/-]SOURCELINK:*) args=("${args[@]}" "$(split_translate 12 $1)") shift ;; @@ -166,9 +167,9 @@ while [ $# -gt 0 ]; do # If contains at least two slashes, treat it as a path. # if [[ "$1" == /*/* ]]; then - args=("${args[@]}" "$(translate $1)") + args=("${args[@]}" "$(translate $1)") else - args=("${args[@]}" "$1") + args=("${args[@]}" "$1") fi shift ;; diff --git a/msvc-dispatch b/msvc-dispatch index 5180487..984a1a5 100755 --- a/msvc-dispatch +++ b/msvc-dispatch @@ -13,24 +13,27 @@ function info () { echo "$*" 1>&2; } function error () { info "$*"; exit 1; } # Split the argument. The <version> itself should be <major>[minor] where -# <major> is digit-dot-only and minor should start with a non-digit-dot (e.g., -# u1, rc1, etc). +# <major> is digit-only and minor should start with the dot (e.g., .0). # arg=($(echo "$(basename "$src_exe")" | \ - sed -n -e 's/^\([^-]*\)-\([0-9.]*\)\([^-]*\)-\([^-]*\)$/\1 \4 \2 \3/p')) + sed -n -e 's/^\([^-]*\)-\([0-9]*\)\(\.[^-]\{1,\}\)\{0,1\}-\([^-]*\)$/\1 \4 \2 \3/p')) tool="${arg[0]}" target="${arg[1]}" major="${arg[2]}" minor="${arg[3]}" -MAJOR="${arg[2]^^}" -MINOR="${arg[3]^^}" +MAJOR="${major^^}" +MINOR="${minor^^}" if [ -z "$tool" -o -z "$major" -o -z "$target" ]; then error "invalid top-level script name" fi +# For the minor version used in variable names replace dots with underscores. +# +MINOR="$(echo "$MINOR" | sed -e 's/\./_/g')" + # Calculate MSVC_{WINEPREFIX,INSTALLDIR,SDKVERSION}. # # We have the following environment variable name hierarchy: diff --git a/rc-15.3-32 b/rc-15.3-32 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.3-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-15.3-64 b/rc-15.3-64 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.3-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-15.5-32 b/rc-15.5-32 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.5-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-15.5-64 b/rc-15.5-64 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.5-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-15.6-32 b/rc-15.6-32 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.6-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-15.6-64 b/rc-15.6-64 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.6-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-15.7-32 b/rc-15.7-32 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.7-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-15.7-64 b/rc-15.7-64 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-15.7-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-16.0-32 b/rc-16.0-32 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-16.0-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-16.0-64 b/rc-16.0-64 new file mode 100755 index 0000000..0d34aea --- /dev/null +++ b/rc-16.0-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" |