Skip to content

☂️ Migrating to CMake #3113

Open
Open
@olanti-p

Description

Is your feature request related to a problem? Please describe.

We currently have 3 4 different build systems:

  1. Makefile
  2. CMake
  3. Visual Studio project
  4. Custom Makefile used by the Android build
  5. 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:

  1. Bringing CMake build up to date, we could cherry-pick DDA PRs for that (there's a lot of them)
  2. 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

Tasks

Preview Give feedback
  1. JSON src tests translation
    scarf005
  2. JSON src tests translation
  3. src

Metadata

Assignees

Type

No type

Projects

  • Status

    Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions