On 18 March 2017 at 04:06, Tom Kent via Boost
On Fri, Mar 17, 2017 at 7:29 AM, Mateusz Loskot via Boost
wrote: On 17 March 2017 at 09:10, Olaf van der Spek via Boost
wrote: Where is 14.10 coming from?
NMAKE build utility, perhaps?
VS2017 is shipped with NMAKE.EXE /? Microsoft (R) Program Maintenance Utility Version 14.10.25017.0
I went through VS2017 and VS2015 to compare the macros that are available, here's what I found:
$(PlatformToolsetVersion) 141 $(VCToolsVersion) 14.10.25017 $(VisualStudioVersion) 15.0 [...] $(PlatformToolsetVersion) 140 $(VCToolsVersion) N/A $(VisualStudioVersion) 14.0
To those above, adding versions from Visual Studio 2012, for example: $(PlatformToolsetVersion) 110 $(VCToolsVersion) N/A $(VisualStudioVersion) 11.0 Now, we can not rely on: $(VCToolsVersion) - it is not defined for every VS toolset $(VisualStudioVersion) - from 15.0 or above, it no longer maps 1:1 with $(PlatformToolsetVersion) AFAIS, BOOST_LIB_TOOLSET is based on "vc" + $(PlatformToolsetVersion) # define BOOST_LIB_TOOLSET "vc110" # define BOOST_LIB_TOOLSET "vc140" Then, for Visual Studio 2017 case, the macro should resolve to # define BOOST_LIB_TOOLSET "vc140" // VS2017 + $(PlatformToolsetVersion) 140 # define BOOST_LIB_TOOLSET "vc141" // VS2017 + $(PlatformToolsetVersion) 141 and in future # define BOOST_LIB_TOOLSET "vcXYZ" // VS2017 + $(PlatformToolsetVersion) XYZ Quoting STL: "The toolset is versioned (according to the IDE) as v141 while the compiler is versioned at 19.1, but we consider them to be the same thing, really." Boost toolset names should keep deriving directly from $(PlatformToolsetVersion) Unless, I'm missing something, am I? Best regards, -- Mateusz Loskot, http://mateusz.loskot.net