Use Tuist Build Configuration & Bring DeltaCores into Repository #91
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.
Background
Delta is made up of individual cores for specific emulators -- basically one project that includes other projects via cocoapods. Delta also has all other delta cores in different repositories making it hard for other contributors to coordinate additions.
The aim of this PR is to optimise the project setup, generation + compilation - while also bringing in the cores that live in other repos to make it easier for others to contribute (inspired by this tweet from @rileytestut )
What does this PR do?
.xcodeproj
and.xcodeworkspace
you define the projects, their targets and their relationships all using Swift [example: MelonDSDeltaCore/Project.swift].Tuist adds some benefits to the workflow for developing something like Delta - 1) no more conflicts in xcodeproj but more importantly 2) with their caching mechanism allows for quick compilation times and provides a "focus" mode where you can focus on one target and all other targets are replaced with pre-compiled versions.
I think this change makes this project more accessible and makes it easier for others who don't have ownership to the repos to try and contribute to this project.
Other changes that have been made
As part of the changes, I've also renamed
[Platform]DeltaCore
into[EmulatorName]DeltaCore
. I think this makes it easier to be able to allow multiple cores for one platform (similar to the current DS setup) where the users can choose which one to use. I think going fromN64DeltaCore
toMupen64PlusDeltaCore
is a right step towards this (but is debatable).Checklist
It currently compiles and runs, but crashes immediately since it imports frameworks (cores) which are not there yet.
How to run
tuist generate
to create workspace!NOTE: I'm using a version of
Tuist
not released yet in which I've added some changes to support.s
(assembly source files) which is needed to properly generate this project. I can help you set up this part if there's no new version of Tuist before this branch is being checked out by others.