-
Notifications
You must be signed in to change notification settings - Fork 617
VS2026 compatibility #936
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VS2026 compatibility #936
Conversation
|
Doesn't that drop ancient VS2017 or older? If you're going to do that (which I doubt zeromus will like) then you might as well drop the other stuff that's specifically there for the older versions? I didn't know how to do it back when I changed it for 2019 support but you can do (at least until the target changes): |
|
That's a good point - it confused me the way it was written, where it specifically set the Windows SDK to 8.1 for all VS versions except 16 (2019). I'll try that out - certainly don't want to break anything for older VS versions. |
That's what it was set to for all versions before I added support for 2019, back then it was fine since it was only 2019 that needed 10, sure it wasn't forward thinking but figured whoever added support for the next VS would make it less awkward but instead they made it look even worse lol, it still works fine, it just takes up more lines and would break in the next VS version. |
|
I don't have anything but 2022 installed anymore so I couldn't verify whether it works on the older ones. I don't care about them anymore. I think it's likely better for the project if we adopt 2022 and 2026 and up to c++20, so there are no impediments for new contributors. Check with @rogerman though, maybe they test windows builds in an ancient VM. I'm hardly relevant anymore, but I'll get on the record as withdrawing my insistence on 2019 and earlier on case I am the last holdout. |
|
Backwards compatibility going back to VS2012 is actually quite easy. Looking at the stuff in the current DeSmuME.vcxproj and desmume.props files, it appears to have support going all the way back to VS2010. Therefore, on my Windows 11 25H2 PC, I've installed every version of Visual Studio going all the way back to VS2010 using installers from this page: For my build tests, I have modified DeSmuME.vcxproj and desmume.props using @SimonAfek's changes in this PR. I'm also using the TargetPlatform check that @Jules-A posted because it is the easiest and most sensible way to set WindowsTargetPlatformVersion, which promotes the best compatibility across all Visual Studio versions. Build Results:
Due to the ease of getting VS2012 to work, as well as being a predominantly Apple macOS developer that only dabbles in Win32 development only when I must, here are my thoughts on the matter:
That's all my thoughts on the matter. As I've already mentioned: I have everything working from VS2012 - VS2026, which incorporates @Jules-A's suggestion and modifies a few more files more than what this PR did. If you want, I can do the commit using @SimonAfek's PR as inspiration. |
|
C is awful but I don't mind sticking to an old c++. I just added a too-new smart pointer, feel free to reprogram it with manual memory management. |
i second that. myself and other got lots of systems with only C++14 compilers available, so let's not unnecessarily raise the bar. apart from that, C++20 is like 10 languages in one, and every contributor will use his favorite part/idiom but the maintainers will then have to understand whatever new language subset they used as soon as a change is desired. |
Totally fine by me. |
|
Implemented via commit 39f27d3, which incorporates changes from @SimonAfek and @Jules-A. Thanks! |
Changes to .vcxproj and .props files so it builds in VS2026