diff options
Diffstat (limited to 'build2/cc')
-rw-r--r-- | build2/cc/compile.cxx | 8 | ||||
-rw-r--r-- | build2/cc/guess.cxx | 4 |
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"; |