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

Transition to SDL3 #962

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

Transition to SDL3 #962

wants to merge 7 commits into from

Conversation

portaloffreedom
Copy link
Collaborator

@portaloffreedom portaloffreedom commented Oct 11, 2024

SDL3 is not release yet, but has hit ABI freeze. Until it's officially released this PR should not be merged.

@portaloffreedom portaloffreedom marked this pull request as draft October 11, 2024 22:25
@portaloffreedom
Copy link
Collaborator Author

portaloffreedom commented Oct 12, 2024

Currently SDL3 is being installed the hard way (git clone; make; sudo make install), we need to come up with a plan for this to change. Possible alternatives:

  • vendor sdl inside the project statically
  • vendor sdl inside the project, giving a dynamic library
  • wait for sdl to be available in the next ubuntu LTS, which seems to be the most common denominator for old distros. (probably going to take 2 years or more)
  • vendor SDL3 statically only for CI builds, but demand that developers that compile the code handle the problem of providing SDL3 themselves.

@metaleap
Copy link
Contributor

metaleap commented Jan 11, 2025

wait for sdl to be available in the next ubuntu LTS, which seems to be the most common denominator for old distros. (probably going to take 2 years or more)

Another option is to "wait until SDL's Wikipedia page lists a 3.x as 'Stable Release' instead of the current 2.x" 😁 even libsdl.org lists 2.x as stable and 3.x as preview..

Early-adopting the bleeding edge is fine for self-contained solo indie game projects etc, but a many-users engine project like Wicked (with almost as many WIP projects) can let the-hot-new-thing settle into stabilization and even some maturation first =) when it comes to Wicked release versions, I mean — that you're already exploring SDL3 here is of course neato!

Vendoring: intuitively but without quite knowing explicitly why, I'd be wary about vendoring something like SDL the same way it's currently only done with LUA, Jolt, FAudio etc. It's such a common "system-wide dep".. and if one's Wicked Game C++ app ever imports anything else that also references SDL but the system one (or its own static or shared vendored one... 😵‍💫 ), even if only to "optionally support" it (say some immediate-mode-GUI lib or other, who knows), at best you have the whole codebase loaded twice in memory and at worst maybe people get link-time conflicts / version differences, duplicate symbols or who knows what build-time or run-time confusions?

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 this pull request may close these issues.

2 participants