Description
As stated in issue #149 from @DemoXinMC
Additionally, we need to look at ways to provide CI and automated building of the CSFML NuGet package to cover more platforms (Mac OS is the glaring omission) as well as avoid having to manually package CSFML updates.
What is missing from the current NuGet package (in order of most important from my point of view):
- MacOS builds
- ARM and ARM64 build for linux and windows
- linux-x64 rid references (need to check if it's possible)
MacOS
The missing MacOS target in the CSFML NuGet package is currently causing problems for SFML.NET on mac, because usually when you build your project the dependencies of the project are resolved and the correct binaries for the platform are extracted to the build directory allowing for a nice and tight development loop. But because of the omission of the MacOS binaries all user that build for MacOS need to download the CSFML MacOS binaries from the SFML website and then copy them to the build directory each time they clean build. This is a subpar experience compare for the linux and windows user experience.
ARM and ARM64 build for Linux and Windows
This would enable users to create projects for Single Board Computer (Like Raspberry Pi) with SFML.NET and also we could explore running on Chromebooks since they can now install linux app. Same thing for Windows because Microsoft is starting to push the Windows on ARM again with their new Surface Lineup (Surface Pro X). And it seems that ARM is getting more and more popular for non-smartphone usage and there's even rumors of the next mac running on arm... So I think it's worth starting to support ARM as a first citizen for SFML (CSFML)
linux-x64
This one I'm not sure how feasible it is, can we support the linux-x64 RID in the NuGet package? this would mean that any linux x64 platform can work with the package even if they are not based on :
- alpine-x64
- debian-x64
- fedora-x64
This would mean we can generate a set of "universal" linux x64 shared objects for CSFML (which might not be possible?)
CI and automated building of the CSFML NuGet package
We could check for using GitHub Actions to automatically CI and Build the CSFML NuGet Package (and maybe even do an automatic package release?).
I've personally checked/started working on a workflow file, but I've hit some build problems.