aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-07-17 09:45:39 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-07-17 09:45:39 +0200
commitecfa0f59dab6d29815eb89c1c50252ba36a6caec (patch)
tree495f936ff0112cf8a6c0e9fe80836b61cbd0e887
parenta9f5db1a8702d85154d76257046ad68af0607160 (diff)
Map VC 17 to runtime version 14.3
-rw-r--r--libbuild2/cc/guess.cxx7
-rw-r--r--libbuild2/recipe.hxx2
2 files changed, 6 insertions, 3 deletions
diff --git a/libbuild2/cc/guess.cxx b/libbuild2/cc/guess.cxx
index 9409604..f9c7153 100644
--- a/libbuild2/cc/guess.cxx
+++ b/libbuild2/cc/guess.cxx
@@ -1426,10 +1426,12 @@ namespace build2
// And VC 16 seems to have the runtime version 14.1 (and not 14.2, as
// one might expect; DLLs are still *140.dll but there are now _1 and _2
// variants for, say, msvcp140.dll). We will, however, call it 14.2
- // (which is the version of the "toolset") in our target triplet.
+ // (which is the version of the "toolset") in our target triplet. And we
+ // will call VC 17 14.3 (which is also the version of the "toolset").
//
// year ver cl crt/dll toolset
//
+ // 2022 17.X 19.3X 14.?/140 14.3X
// 2019 16.X 19.2X 14.2/140 14.2X
// 2017 15.9 19.16 14.1/140 14.16
// 2017 15.8 19.15 14.1/140
@@ -1448,7 +1450,8 @@ namespace build2
//
// _MSC_VER is the numeric cl version, e.g., 1921 for 19.21.
//
- /**/ if (v.major == 19 && v.minor >= 20) return "14.2";
+ /**/ if (v.major == 19 && v.minor >= 30) return "14.3";
+ else if (v.major == 19 && v.minor >= 20) return "14.2";
else if (v.major == 19 && v.minor >= 10) return "14.1";
else if (v.major == 19 && v.minor == 0) return "14.0";
else if (v.major == 18 && v.minor == 0) return "12.0";
diff --git a/libbuild2/recipe.hxx b/libbuild2/recipe.hxx
index dfe36ec..5a6e38d 100644
--- a/libbuild2/recipe.hxx
+++ b/libbuild2/recipe.hxx
@@ -30,7 +30,7 @@ namespace build2
// Note that max size for the "small size optimization" in std::function
// (which is what move_only_function_ex is based on) ranges (in pointer
// sizes) from 0 (GCC libstdc++ prior to 5) to 2 (GCC 5 and later) to 3
- // (Clang libc++) to 6 (VC 14.2). With the size ranging (in bytes for 64-bit
+ // (Clang libc++) to 6 (VC 14.3). With the size ranging (in bytes for 64-bit
// target) from 32 (GCC) to 64 (VC).
//
using recipe_function = target_state (action, const target&);