Description
Is your feature request related to a problem? Please describe.
We currently have 3 4 different build systems:
- Makefile
- CMake
- Visual Studio project
- Custom Makefile used by the Android build
Code::Blocks projectthis one has been removed
All 4 build systems have their own ways of defining various features, so any time we tweak the build files we have to copy over the changes to the other 3. Also, all 4 are out of sync with each other when it comes to build options or utilities supported, which makes it even harder to deal with.
Describe the solution you'd like
Ditch Makefile and Visual Studio projects in favor of single cross-platform CMake project.
CMake can be used to generate both Makefile and VS projects, as well as build files for ninja (which seems to be used these days as the modern faster alternative to Makefile). It's also cross-platform, with customization points for e.g. the same VS project files, so we should be fine on that front, and should be usable for msys2/cygwin builds.
This migration will require some yak shaving:
- Bringing CMake build up to date, we could cherry-pick DDA PRs for that (there's a lot of them)
- Adding some targets that mirror Makefile utilities (code and JSON formatting, language files manipulations, etc.)
I think in the end this will make it easier to work with the project, say, splitting it up into backend-agnostic game library and sdl + curses backends.
Additional context
No response
Metadata
Assignees
Type
Projects
Status
Todo