23 Oct
2013
23 Oct
'13
3:14 p.m.
On Wednesday 23 October 2013 18:47:11 Sergey Cheban wrote: > On 23.10.2013 17:21, Andrey Semashev wrote: > > I don't think that the compiler or toolset used to build the application > > should determine the target platform, unless the particular toolset is not > > able to target the particular platform. Versions of the target OS and the > > toolset are not related in general. I mean, I can use whatever version of > > GCC or Intel compiler to build for any Windows, so why should MSVC be > > different? > In the msbuild world, the toolset is not just a compiler. The msbuild > toolsets consist of: > - the specific version of the compiler(s) > - the specific version of the Windows SDK > - the specific versions of the CRT, ATL and MFC > > The toolset does not completely determine the target platform. You can > compile for different platforms (x86/x64, Win32/WinRT) with the same vc12 > toolset. But if you need the WinXP support, you have to use the xp > compatible version of the CRT. So, you need the vc12_xp toolset. Yes, that's what I meant. To put it another way, when vc12_xp is used, you cannot tell what OS is targeted - XP, Vista, 7, 8 or 8.1. vc12 only narrows the list, excluding XP. So, if I understand correctly, when you use a toolset you have to define the WinAPI version macro anyway, right? Or maybe just using the toolset defines it somehow? In that case, no specific support for toolset detection is required from Boost - we can just deduce the WinAPI version like we currently do.