angstsmurf / spatterlight

Updated fork of Spatterlight
GNU General Public License v3.0
105 stars 5 forks source link

Development instructions #25

Closed nk9 closed 3 years ago

nk9 commented 3 years ago

I cloned the repo, opened the .xcodeproj and pressed the Build & Run button. The build succeeded, and then… nothing. I see a bunch of missing libraries under Products in the sidebar. Most importantly, the .app is also red. So I guess it wasn't actually built?

Anyway, it would be quite helpful to have a set of bootstrapping instructions for people who would like to start tinkering.

angstsmurf commented 3 years ago

That is bad, it is supposed to build out of the box. When developing, I often download the repo as a zip and build from the unzipped folder (an easier way than Git trickery to test previous versions), and it always works right away.

What OS is this? Is the selected scheme Spatterlight>My Mac? It would be great if you could provide a screenshot.

EDIT: I haven't tried building it on Big Sur yet, I'm still on 10.15. Catalina or later is probably required currently. Before 135bd2c it should build on 10.7 and later.

EDIT 2: Frotz, libhtmltads.a, htmltadsr, and fizmo are not used any more, so they are meant to be red, and should probably be deleted from the project at this stage.

nk9 commented 3 years ago

Sure, sorry about that. This is what happens when I build from the Source .zip on 10.15.7 with Xcode 12.4:

Screenshot 2021-02-22 at 23 47 36

The build again succeeds, and it even starts to run. But there's an SDL2 library import error?

I think I've worked out the difference between the Source .zip and master. master is set to build the glkimp library target, while Source uses the glulxe executable target. When I switch the target, I get the same error. So… progress!

angstsmurf commented 3 years ago

The build target should be Spatterlight, and all the others will be built automatically. Not sure what that is not the default for you.

nk9 commented 3 years ago

OK, almost there. All of the libraries build save the ones you called out. But the build still fails:

Screenshot 2021-02-22 at 23 57 48

Edit: Same issue whether I build from Github clone or Source .zip.

angstsmurf commented 3 years ago

So something seems to be wrong with the symbolic link spatterlight/headers/SDL/SDL_metal.h. It is supposed to link to the header file inside the SDL framework at spatterlight/Frameworks/SDL2.framework/Versions/A/Headers/SDL_metal.h. It is probably absolute instead of relative.

I'll try to fix it, but it should work if you just copy the header file from inside the framework and replace the symbolic link with it.

nk9 commented 3 years ago

Interesting. There are actually 3 headers with broken symlinks. And indeed, when I delete the broken files and redo the symlinks, the build succeeds!

Screenshot 2021-02-23 at 00 15 56

Thanks very much. 😸

angstsmurf commented 3 years ago

Thanks a lot for noticing this. I wonder how many people have tried to build this and given up.

angstsmurf commented 3 years ago

Should be fixed in the current repo. Feel free to confirm.

nk9 commented 3 years ago

Yes, master is working for me now! Thanks very much for the quick turnaround. It seems like there must be a way to have the correct target selected by default, but thanks for including a line in the README about it for now.