Move backends (and examples) into separate subpackages #73
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This will be a huge improvement once I set up a custom Swift Package Registry (to enable consumers to depend on packages within subdirectories of the repo). It means that consumers of SwiftCrossUI can have fine-grained control over exactly which backends are built as part of their project. This should also speed up package resolution.
Currently, there are a bunch of janky system-library availability checks to conditionally include as many backends as possible (because there's no way for a consumer of a Swift package to selectively enable/disable specific products of a dependency). With these changes, only the Gtk backend has any kind of janky availability check (because it needs to know whether the Gtk version is >=4.10 or not - thanks Gtk).
Having the Examples separate is also quite nice.
A side effect of all this is that
SwiftCrossUI
itself is now dependency-less, making it easy to bring to new platforms without needing to introduce even more availability checks.