Problem: VS projects are drifting and require sodium. #2457
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.
The Visual Studio projects, excluding 2008: (2010, 2012, 2013, 2015, 2017), are very nearly identical. At some point, in order to reduce the file count, all of the projects became linked to one of them (2015). Then as 2017 was added, it was directed at 2015. Eventually changes in isolation were applied, including one that hard-coded a drive letter into a dependency path (E:...).
Maintaining the set of projects is actually straightforward as long as they remain nearly identical. The linkage to 2015, intended to reduce maintenance, actually made it a lot worse. The libsodium repository uses the same build configuration and has been able to add VS2015 and VS2017 solutions with no problems, since all that is required is copying the directory and changing the compiler designation. So I've reverted to the original design, which hopefully will stick.
I have previously recommended we drop the VS2008 solution since it is an entirely different system as the others, and as far as I can tell it's unmaintained. I also do not know why there is a
vs2015_xp
directory. I recommended this be deleted (or at least documented).The original builds were set to link libsodium by default. This requires the (very similar) corresponding Visual Studio build from that repository be built first. This is unnecessary and a poor default behavior, especially since tweetnacl is integrated. So this PR also enables tweet and disables sodium linkage by default, making first use much simpler.
I added a NuGet package update to this PR. The NuGet package is versioned 4.2.20.0 (vs. 4.2.2.0) because of a versioning error on the previous package. The vs2013 package is published. There is also a new libsodium vs2013 package published.