-
Notifications
You must be signed in to change notification settings - Fork 160
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
Upgrade Windows projects to VS 2019 #2591
base: master
Are you sure you want to change the base?
Upgrade Windows projects to VS 2019 #2591
Conversation
- Upgraded PlatformToolset from v140 to v142 - Updated Windows SDK version from 8.1 to 10.0
- Upgraded PlatformToolset from v140 to v142; and v141_xp for _XP configs. - Updated Windows SDK version from 8.1 to 10.0 - In .props files change references to LIB locations, by adding _VS19 prefix; this is to be able to have both VS15 and VS19 versions of libs in the same enviroment.
Those are binary compatible - from VS 2015 to VS 2022. There is no need for this.
I don't think this toolset is available in VS2022
I don't think these change at all
These have to be made before or this will break the builds. I need at minimum a week to look into these. The big thing here is the Windows Docker image that has to be redone. |
I don't think it's related to Visual Studio itself, it may be related to switching a toolset from v140 to 142 and/or Windows SDK from 8.1 to 10.0. The engine refused to link with previously compiled static libraries. I might try again to be certain. |
Uhm, that is weird, I don't yet know until I test more things. Maybe is something C++ specific? Like, SDL2 we use in Windows comes from SDL binary releases and they use the latest MinGW - which I have no idea how it relates to the MSVC stuff, other than that it works? Also in theory if building our dependencies using MinGW is better I can set it up like that. |
SDL2 is dynamically linked, that's a different thing compared to statically linking. When we link dynamically then only the public API must match. (For the same reason very old plugin dlls can link with the modern Windows engine.) |
Hey, I asked a person that has more insight on VS development and they gave me the following information
I guess the Dev18 is the future VS2025. I asked about the use of multithread flag (
I guess I can use VS2022 on the CI and it should work with the VS2019 projects while keeping the desired compatibility. But I think WinXP and Vista are out. |
@StephanTLavavej (the person I mentioned in the previous comment) gave me a nice reference for the Win7 support being kept in VS2022 (17.x) and removed only in next version (Dev18): microsoft/STL#4857 |
Fix #2241
What's done:
Examples:
AGS_SDL_SOUND_LIB
->AGS_SDL_SOUND_LIB_VS19
,AGS_SDL_SOUND_LIB_X64
->AGS_SDL_SOUND_LIB_VS19_X64
.And alternative to this would be to use separate library names with "_vs19" prefix, for example.
TODO:
OTOH, I do not think that winxp support is important at this point, as in all the time since it was moved to a separate config, not a single user have asked for this build.