Skip to content

Conversation

@AnotherCommander
Copy link
Member

We are beginning the transition to a new build system on Windows based on MSYS2/MinGW64 and MSYS2/Clang. Both compilers are expected to be supported, with MinGW generating executables that depend on msvcrt and Clang generating executables that depend on Microsoft's more recent universal C runtime (ucrt).

This PR will allow all three environments (legacy, MinGW64/msvcrt and Clang/ucrt) to build the game from one common codebase. For some time all three options should be available. When we are satisfied that the new build system works and has been tested sufficiently, all we will have to do will be to remove the legacy build parts (effectively kind of reversing this PR and leaving only the new build system configurations in).

Linux should still be fully functional and build the modern variant by default, with the only difference being that while the Windows modern build uses espeak-ng, Linux is still on the old espeak. A transition to espeak-ng should be planned but is outside of the scope of this PR.

Thanks to mcarans for a great job on creating the modern dev environments. We are already seeing performance improvements in the binaries produced by them.

AnotherCommander and others added 10 commits November 23, 2025 13:36
… both the standard and the modern build. Makefiles still need to be manually switched for each build type.
…=yes argument. Default is still modern=no for the time being. Using modern setup with legacy build codebase will now error out. Also reverted the :1 bitfield thing since it's now fixed in modern gnustep.
…has no effect on the legacy build, which is very convenient.
… mingw64-msvcrt or clang-ucrt). Just launch the desired dev environment and build the game normally. The makefiles logic can now detect whether to build legacy or modern, based on the gcc version which is available on all environments.
Hopefully the github runners can build the modern configuration this way.
@AnotherCommander AnotherCommander merged commit cf6b672 into master Dec 11, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants