Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The current CMake enviroment is heavily flawed #2619

Open
MatusGuy opened this issue Aug 29, 2023 · 0 comments
Open

The current CMake enviroment is heavily flawed #2619

MatusGuy opened this issue Aug 29, 2023 · 0 comments
Assignees

Comments

@MatusGuy
Copy link
Member

Most people in the SuperTux team might know me as a "possible cmake expert". And I say that the current way dependencies are managed is terrible!

The only platform that is easy to build for is Linux, because of the abundance of a package manager and pkgconfig. Building SuperTux for Windows is a massive pain. You either:

  • Use vcpkg in hopes of it working
  • Build every possible dependency from source, one after another

Both of these options still require you to modify the CMake scripts, for some weird reason, and to do so, one needs to have significant knowdlege about CMake.

My proposal would be to build as many dependencies from source as possible using git submodules and add_subdirectory, regardless of platform. Therefore it's guaranteed to work flawlessly (if managed correctly) on all platforms (the only platform I have doubts with is webassembly). It would also help my new cmake-based android builds.

Sure, building dependencies from source might be slow, but with the Ninja build system, you don't even notice you're building dependencies from source.

I might come out with a pull request taking a look at all of this, but I would like to know your opinion.

@MatusGuy MatusGuy mentioned this issue Aug 31, 2023
27 tasks
@MatusGuy MatusGuy self-assigned this Dec 1, 2023
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 a pull request may close this issue.

1 participant