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

Use Tuist Build Configuration & Bring DeltaCores into Repository #91

Draft
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

dcvz
Copy link

@dcvz dcvz commented Dec 28, 2020

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?

  • Defines the project and cores using Tuist - that means no more .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.

  • Brings in the delta cores from their own repos into this one - with the exception of emulator source code because that doesn't belong to this project and keeping it separate makes it easier to keep up with upstream changes.

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 from N64DeltaCore to Mupen64PlusDeltaCore is a right step towards this (but is debatable).

Checklist

  • Migrate main Delta to use Tuist
  • Migrate DeltaCore
  • Migrate MelonDSDeltaCore
  • Migrate DeSmuMEDeltaCore (prev: DSDeltaCore)
  • Migrate Mupen64PlusDeltaCore (prev: N64DeltaCore)
  • Migrate SNES9xDeltaCore (prev: SNESDeltaCore)
  • Migrate NestopiaDeltaCore (prev: NESDeltaCore)
  • Migrate GambatteDeltaCore (prev: GBCDeltaCore)
  • Migrate VisualBoyAdvanceDeltaCore (prev: GBADeltaCore)

It currently compiles and runs, but crashes immediately since it imports frameworks (cores) which are not there yet.

How to run

  • Checkout branch
  • Install Tuist
  • Use tuist generate to create workspace!
  • Open workspace and run!

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.

@lonkelle
Copy link
Collaborator

lonkelle commented Jul 7, 2021

This is a pretty big infrastructure change. @dcvz - would you mind joining out Discord and discussing this with me more in depth. My username is "Joelle (Lonkle)" on Discord. Here's the invite link: https://bit.ly/altmember-delta-general-chat

@dcvz
Copy link
Author

dcvz commented May 22, 2022

@lonkelle Hi Joelle, joined the discord but can't message you. Also couldn't find a channel dedicated to development. Would love to ask some questions about how to best proceed with some things I'd love to try. Username on Discord is @dcvz.

@rileytestut rileytestut force-pushed the develop branch 2 times, most recently from 07c1703 to ee536f9 Compare August 17, 2022 15:52
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