Thanks for pointing out the /P-switch option (wasn't aware of that option).
I agree that specifying a fixed 4.0-value for the ToolsVersion will not
cause an issue (at least not atm - it might though with future versions
of VS depending on what changes there).
Still, in my opinion it wouldn't hurt to apply that patch, even if it
just brings some consistency/correctness into the project files.
But just making a suggestion here. It's obviously completely up to u
whether u decide it's worth it to apply or not.
Regarding the other fix: Certainly you can fix it (quite easily) once
you know what the problem is (which tbh is not that obvious to see from
the linker errors you get at the beginning --- took me around an hour to
trace the issue down). So I think that it's certainly worth getting
changed, so that the delivered 1.7-sources build correctly without
having to apply a user-patch.
But again: The decision here whether it's worth it or not is fully up to u.
Regards,
Stefan
Most tools don't care about the ToolsVersion stored in the header of
these files. Starting with VS2010 SP1 they even try not to change this
value to allow sharing a single set of sourcefiles between multiple
Visual Studio versions. The only thing it is really used for is auto
detecting which version of VS tools should be used if you build/open
the project file standalone… Which in general won’t work for our
projects anyway.
The version in the .filter files is completely ignored… VS just
re-uses the existing code for parsing msbuild files for its ui.
The PlatformToolset in your other patch is more interesting, but
doesn’t really affect with what versions of VisualStudio you can build
with as you can just pass the version you want with an msbuild
argument such as /P:PlatformToolset=v140. This overrides the version
in all your project files.
(And if you build in VS itself fixing is a single right click operation)
Bert
Sent from Mail <http://go.microsoft.com/fwlink/?LinkId=550986> for
Windows 10
*From: *Stefan
*Sent: *maandag 10 augustus 2015 04:35
*To: *[email protected]
*Subject: *Re: [PATCH] correct ToolsVersion in VS project files
On 10/08/2015 04:01, Stefan wrote:
> Hi,
>
> attached are patches for SVN 1.7, 1.8, 1.9 and trunk which correct the
> ToolsVersion-setting in the generated project/filter files for VS >=
> 2010.
> As of VS 2013 the ToolsVersion is no longer statically set to 4.0, but
> rather to the correct toolset version (see:
> https://msdn.microsoft.com/en-us/library/bb383796.aspx).
>
> While I'm not aware of any concrete issue here, for the sake of
> correctness I believe this to be a patch which is worth applying to
> 1.7+ (so that the in 1.7.21 mentioned VS 2015 is "as correct as
> possible").
>
> The patch for 1.7 also drops a redundant entry from gen_win.py (the
> VS2010 entry was specified twice there).
>
> 1.7:
> [[
> Sets the ToolsVersion value correctly in the VS project files for VS
> >= 2013.
> Also drops a redundant entry for VS2010.
>
> * build/generator/gen_vcnet_vcproj.py:
> (write_project): add data.tools_version
>
> * build/generator/gen_win.py:
> (parse_options): remove redundant VS 2010 section and specify
> values for
> tools_version
> (move_proj_file): copy tools_version to data
>
> * build/generator/templates/neon.vcxproj.ezt
> * build/generator/templates/serf.vcxproj.ezt
> * build/generator/templates/svn_config.vcxproj.ezt
> * build/generator/templates/svn_locale.vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj_filters.ezt
> * build/generator/templates/zlib.vcxproj.ezt
> (): set ToolsVersion to VS version specific value
> ]]
>
> 1.8:
> [[
> Sets the ToolsVersion value correctly in the VS project files for VS
> >= 2013.
>
> * build/generator/gen_vcnet_vcproj.py:
> (write_project): add data.tools_version
>
> * build/generator/gen_win.py:
> (parse_options): specify values for tools_version
> (move_proj_file): copy tools_version to data
>
> * build/generator/templates/serf.vcxproj.ezt
> * build/generator/templates/svn_config.vcxproj.ezt
> * build/generator/templates/svn_locale.vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj_filters.ezt
> * build/generator/templates/zlib.vcxproj.ezt
> (): set ToolsVersion to VS version specific value
> ]]
>
> 1.9+trunk:
> [[
> Sets the ToolsVersion value correctly in the VS project files for VS
> >= 2013.
>
> * build/generator/gen_vcnet_vcproj.py:
> (write_project): add data.tools_version
>
> * build/generator/gen_win.py:
> (move_proj_file): copy tools_version to data
>
> * build/generator/gen_win_dependencies.py:
> (parse_options): specify values for tools_version
>
> * build/generator/templates/svn_config.vcxproj.ezt
> * build/generator/templates/svn_locale.vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj.ezt
> * build/generator/templates/vcnet_vcxproj_filters.ezt
> (): set ToolsVersion to VS version specific value
> ]]
>
> Regards,
> Stefan
Attached is a corrected patch for trunk (last one contained an
unintentional change in INSTALL).
Regards,
Stefan