-
Notifications
You must be signed in to change notification settings - Fork 2
Reduce submodule usage #2
Comments
Could possibly disable Squirrel for this use case until Squirrel gets updated. Since the submodules are handled over at https://github.com/nesbox/3rd-party , we could update the submodule to reference our own fork until the change is merged upstream. Here is how that workflow would look....
Looks like there have been updates in Squirrel in the ppast couple months, I'll make an issue to update it in TIC-80. https://github.com/albertodemichelis/squirrel/commits/master
What extent are the changes needed in SDL? Are there compilation flags we could toggle for it?
I've found the submodules make it really easy to update the dependencies. I've updated Duktape, and made changes to how SDL is configured, with success. While the workflow I've listed above does take a bit more time than copy/pasta, and duplicating the code base, it does save maintenance hell down the line. |
So, here are the specific changes needed to get tic80 to work. MAIN BRANCH CHANGES
SUBMODULE CHANGES Submodule: Lua
SUBMODULE: SQUIRREL
Then make a directory called build2 in root and run |
Now, obviously we can do the in-house stuff easily here. And, maybe we could get squirrel to add in IOS flags. HOWEVER, the lua case is impossible. I happen to know that several people now have, over many years, tried to get the lua people to change this specific set of lines of code so as to allow iOS to compile. And yet it remains unchanged. So, we need to make the lua code local (or downgrade the lua to a version that did historically work). People have been complaining about this since 2017 at least: http://lua.2524044.n2.nabble.com/Lua-source-does-not-build-for-iOS-since-recent-XCode-Update-td7679687.html. Other projects with iOS support and Lua have done the same as I am suggesting: https://github.com/danomatika/ofxLua/blob/master/README.md. |
Additionally, other libretro cores - stonesoup, mame, lutro, desmume, gw, mesen, daphne, mame2016, thepowdertoy, and even libretro-deps (which chailove uses, incidentally) keep LOCAL copies of lua so that modifications like this can enable support for devices like iOS. |
I have made a PR over at squirrel. We will see if it gets accepted. However, we should not wait on lua changes - I doubt they will come anytime soon. |
Hello I created this fork to address this issue with lua, and add some additions like the https://github.com/NinjasCL/lua8 :) |
@clsource Looks like a great addition! Mind creating an issue in the upstream repo at https://github.com/nesbox/TIC-80 ? Thanks! |
I have a fully working version of TIC-80 for iOS. However, since this required editing the source code of a few submodules, it is not something I can just simply submit a pull request for.
The modules in question are
sdl2
andsquirrel
within the3rd-party
submodule package. Additionally, the lua version in the 3rd-party submodule is out of date and needs one edit.To fix this in the current way I would need pull requests upstream for sdl2 (which seems very unlikely, given how large that project is), and squirrel (which seems even more unlikely as that has not updated in years). Not to mention the
3rd-party
submodule itself to fix the lua issue.As a result, it seems unlikely, with the current structure, that this repository will literally ever work on iOS at literally any point in the future.
Here is my working repository. I am not saying we need to make EVERYTHING that is a submodule into an integrated part of the repository, but we need to consider making SOME - particularly of the ones (like squirrel) that literally have not updated in years.
https://github.com/Jet082/TIC-80/
The text was updated successfully, but these errors were encountered: