aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-12-12 11:00:47 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-12-12 11:00:47 +0200
commit2d16c7ef06e22cae51436957bb6b80ea350a709f (patch)
tree7b252691c9cfd065dcd0cc1d656813d836bfc58e /build2/cc
parent3920ad1ebd896c59a11e193aa967f9d85fc52ba8 (diff)
Add support for VC 15u5 (compiler version 19.12)
Diffstat (limited to 'build2/cc')
-rw-r--r--build2/cc/compile.cxx8
-rw-r--r--build2/cc/guess.cxx4
2 files changed, 8 insertions, 4 deletions
diff --git a/build2/cc/compile.cxx b/build2/cc/compile.cxx
index bb0ad37..d73e67c 100644
--- a/build2/cc/compile.cxx
+++ b/build2/cc/compile.cxx
@@ -2945,11 +2945,13 @@ namespace build2
if (ps)
psrc.active = true; // Re-arm.
- // VC15 is not (yet) using the 'export module' syntax so use the
- // preprequisite type to distinguish between interface and
+ // Prior to 15u5 VC was not using the 'export module' syntax so we
+ // use the preprequisite type to distinguish between interface and
// implementation units.
//
- if (cid == compiler_id::msvc && src.is_a (*x_mod))
+ if (cid == compiler_id::msvc &&
+ cmaj == 19 && cmin <= 11 &&
+ src.is_a (*x_mod))
{
// It's quite painful to guard the export with an #if/#endif so
// if it is present, "fixup" the (temporary) preprocessed output
diff --git a/build2/cc/guess.cxx b/build2/cc/guess.cxx
index df7899b..6dea97d 100644
--- a/build2/cc/guess.cxx
+++ b/build2/cc/guess.cxx
@@ -1034,6 +1034,7 @@ namespace build2
//
// year ver cl.exe crt/dll
//
+ // 2017 15u5 19.12 14.1/140
// 2017 15u3 19.11 14.1/140
// 2017 15 19.10 14.1/140
// 2015 14 19.00 14.0/140
@@ -1044,7 +1045,8 @@ namespace build2
// 2005 8 14.00 8.0/80
// 2003 7.1 13.10 7.1/71
//
- /**/ if (v.major == 19 && v.minor == 11) arch += "14.1";
+ /**/ if (v.major == 19 && v.minor == 12) arch += "14.1";
+ else if (v.major == 19 && v.minor == 11) arch += "14.1";
else if (v.major == 19 && v.minor == 10) arch += "14.1";
else if (v.major == 19 && v.minor == 0) arch += "14.0";
else if (v.major == 18 && v.minor == 0) arch += "12.0";