FosterFramework / Foster

A small C# game framework
MIT License
435 stars 38 forks source link

Initial attempt at automatic lib builds #14

Closed MrBrixican closed 11 months ago

MrBrixican commented 11 months ago

Feel free to make changes/copy the action without using this PR.

It should just run cmake on ubuntu/windows, aggregate artifacts (libs), and commit all the libs in one go.

My C skills are pretty rusty so please change anything regarding cmake that seems wrong.

Also, not sure why the ubuntu build is smaller than what we already have, so probably best to look into whether it's valid on your test system. Feel free to rebuild using a cloned branch if you don't trust it :).

NoelFB commented 11 months ago

Whoa cool, this looks great! I'll try this out and see if they all work. Is there any reason you've commented out the Mac ones for now?

MrBrixican commented 11 months ago

The mac runner is non Apple Silicon (probably Intel x64). So if you want to support those, it can be uncommented. A corresponding artifact download will need to be added in the second job as well.

NoelFB commented 11 months ago

Yeah I think it's worth doing those for now as well, at least for automatic ones. I feel like people on Apple Silicon are probably still used to having build stuff themselves, and once Github supports it it'll be an easy thing to update.

NoelFB commented 11 months ago

I just tried the built libraries here, and had this error: Foster SDL_CreateWindow Failed: SDL not configured with OpenGL/GLX support Which is surprising because I thought that by default it would have that. I may need to investigate making that explicit in the CMake file or something...

MrBrixican commented 11 months ago

Included the changes for Mac. Yeah, it wouldn't surprise me that it may need to be explicitly configured. I have ubuntu via VMWare and a Steam Deck. Going to play around and see if I can get it running on both.

NoelFB commented 11 months ago

OK sounds good! I can mess around a bit too. It might be as simple as adding SDL_OPENGL to CMake? I'm not sure why it would be on by default on my PC, but not on the Github Action VM...

MrBrixican commented 11 months ago

This may be due to dependencies needed to build sdl on Linux. Given that these are headless runners, it's possible they're missing necessary components.

See:

NoelFB commented 11 months ago

Ahh yeah that totally makes sense! I can probably figure out which dependencies to get in order to make it work. Alternatively I wonder if just installing SDL2 directly would pull in everything needed

NoelFB commented 11 months ago

I've been trying to figure out how to clone this and test it myself (while adding SDL2 as a dependency to try to resolve missing stuff on Linux) but I can't seem to figure out how to do that, haha. I can't fork your fork, and if I make a branch on github with the new action, I can't actually run it (I guess Github only detects Actions in the main branch)?

Anyway, I think what you have here looks good if we can get the dependencies on Linux working. If I could somehow test this easily I think I could fix that really fast.

MrBrixican commented 11 months ago

Haha, no worries. Actually just testing the solution from FNA3D.

NoelFB commented 11 months ago

Awesome, just tested the built binaries on my linux PC, and it works!

MrBrixican commented 11 months ago

Nice. Let me merge that branch into my main.

MrBrixican commented 11 months ago

Alright, should be good to go.

NoelFB commented 11 months ago

Great! Merging in, thanks so much for doing a pass on this :D