From ecfa0f59dab6d29815eb89c1c50252ba36a6caec Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 17 Jul 2022 09:45:39 +0200 Subject: Map VC 17 to runtime version 14.3 --- libbuild2/cc/guess.cxx | 7 +++++-- libbuild2/recipe.hxx | 2 +- 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&); -- cgit v1.1