Gale Andrews wrote:
Thanks, Henric. Robert had started a page on Audacity Wiki http://wiki.audacityteam.org/wiki/Building_Audacity_on_Visual_Studio_2015
about building with VS2015.
Is what I have written about your fork in the green div at the top of that page accurate?
Are you saying you have produced 64-bit builds of Audacity, or just solved problems building 32-bit builds of Audacity on 64-bit Windows?
Yes, I believe what you put on that page is correct. The only thing I might hesitate about is that there was a typo in the portaudio-v19 project file where ASIO_SDK was AISO_SDK (or something to that effect) that was fixed in a later commit.
As for 64-bit: yes, they are x64-targeted builds of Audacity that run as 64-bit processes and worked well enough for me to do my "rand()" ranting related testing back in February. Both the x64 release and debug builds worked fine for what I tested. Unfortunately, the gigantic change for 64-bit support is a) indeed gigantic (particularly in some libraries) and b) includes things that it turned out weren't necessary. The first thing that comes to mind is that one shouldn't mix Unicode and Multi-byte projects (not that MBCS should be used anymore); given that they are mixed, it is safer to use directly use the *A and *W variants of calls and structs and char/wchar_t (instead of TCHAR). That way, the code always means the same thing, regardless of the Unicode/MBCS settings. I tried to change things to always specify the types explicitly. However, it turned out that those changes were probably not required for x64 to not blow up when run.
Note that I used the v140_xp build only for Win32/Release and v140 for everything else. I figured there were never all that many WinXP x64 installs to begin with, and the folks asking for that kind of bleeding edge trouble would not be the ones sticking on XPx64 when later versions of Windows became available. wxWidgets's master branch--and then wxWidgets 3.1.0 when it was released--were used since that's when they added VS2015 support.
Be aware that the vs2015 branch adds a .gitattributes to specify EOL behavior. I'm no git expert, but I was having trouble between Windows and Ubuntu when testing. That does mean there are some EOL differences between master (which is identical to the official Audacity master branch) and the vs2015 branch. (Stuff like "git merge --strategy=recursive --strategy-option=renormalize master" seems to sort it out properly.)
One good thing about some of the changes: MS has been trying improve their standards support and many changes remove work-arounds for previous MSisms that are now no longer needed (e.g., they now provide stdint.h and inttypes.h).
TL;DR: Yes Audacity x64 platform binaries run, but some of the changes in the x64 commit are not required and others are quite intrusive (e.g., libnyquist).