projectM-visualizer / projectm

projectM - Cross-platform Music Visualization Library. Open-source and Milkdrop-compatible.
https://discord.gg/mMrxAqaa3W
GNU Lesser General Public License v2.1
3.22k stars 364 forks source link

Add emscripten build and release to workflow #673

Closed Blaquewithaq closed 1 year ago

Blaquewithaq commented 1 year ago

These are modified actions to add Emscripten in the build process. I've also included a release action which can be used by pushing a tag when we update.

kblaschke commented 1 year ago

I was thinking about splitting up the builds into separate workflows for each platform, so it's not all in one file and we can also remove the CMake scripts, placing the build commands directly into the YAML files. If you want to take on this task, please go ahead!

In addition to that, I wouldn't recommend releasing something on every push, as this would make the GitHub Release section very crowded and it becomes hard to identify which build is usable and which is not. So having the release action is great, but I'd recommend configuring it as on-demand only, parameterizing it to release a certain branch.

Also, for release builds, I'd strongly recommend building both "Release" and "Debug" configurations and install them into the same install dir per platform. This will enable users to link against either of the versions depending on the build configuration. CMake will automatically choose the correct library to link when using the libprojectM::shared/static targets.