Open olanti-p opened 1 year ago
Adding some targets that mirror Makefile utilities (code and JSON formatting, language files manipulations, etc.)
maybe we could use deno task to simplify some of them. (it's like node package.json scripts but deno)
If they're implemented as CMake targets, then any IDE with CMake integration will be able to show them in ui or run them, and we can make them depend on other targets (e.g. when asked to format json files, Makefile automatically builds the json formatter).
Is your feature request related to a problem? Please describe.
We currently have
34 different build systems:Code::Blocks projectthis one has been removedAll 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:
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