You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 project this 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
The content you are editing has changed. Please copy your edits and refresh the page.
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
Tasks
The text was updated successfully, but these errors were encountered: