update to newest VS2017 Release 15.5 #47
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Three small commits to update to the newest VS2017 15.5 Release (November 2017)
VS2017 - 15.5.0 kludge for GTest UnitTests
MSDN claims that this is a C++17 language standards issue, but I was not able to solve this problem by specifying the use of the C++14 standard language (the Properties control for this is likewise a new
feature of version 15.5.0)
See... https://docs.microsoft.com/en-us/cpp/cpp-conformance-improvements-2017
The only simple, short-term solution that I could come up with was to simply follow the suggestion of defining the
_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
token as given above.Even though this problem has been discussed in the GoogleTest GitHub forum since at least 6 June, the underlying problem remains unresolved at this hour (well, by late 6 Dec anyway)...
See... googletest uses std::tr1 which will be deprecated in VS 2017 google/googletest#1111
See... Compilation error (Gtest + Library using TR1) google/googletest#1320
See... fix for VS2017 Preview deprecation of ::tr1::tuple google/googletest#1311
I will assume that the GoogleTest resolution of this problem will require WinMerge to adopt the newest GoogleTest framework (which is likely a good idea anyway). I will keep an eye on their progress and resolution and advise accordingly.
In the meantime, this kludge allows WinMerge's UnitTests project to compile and execute correctly.
Fix Boost's checking for new VS2017 Version 15.5.0
Update 5 (dated Oct 2017) changes _MSC_VER to 1912.
See... https://blogs.msdn.microsoft.com/vcblog/2017/11/15/msvc-conformance-improvements-in-visual-studio-2017-version-15-5/
This causes lots of compilation messages (neither Errors nor Warnings) with the text
Unknown compiler version - please run the configure tests and report the results
. I have not reported this new issue to Boost.org (they will eventually catch up without my help)This tiny patch will prevent those compilation messages until a newer version of Boost becomes available and WinMerge chooses to adopt it.
Since this has been a hard message to find twice now (previously with VS2017 15.3.0), I have added a new filter Boost to the Solution Explorer, containing a very small selection of boost configuration
files. Boost itself is too large to include either completely, or even the reasonably small subset of boost files that WinMerge uses.
Mimic changes also for VS2015 to add the Boost filter to the Solution Explorer, even though this problem will never occur with VS2015
VS2017 15.5.0 updated version in .sln file
WinMerge.vs2017.sln
file