build2-packaging / sfml

build2 packages for SFML
MIT License
0 stars 2 forks source link

Add missing SFML-Audio #9

Open Klaim opened 1 year ago

Klaim commented 1 year ago

If my memory is correct, sfml-audio was not added yet because it requires OpenAL which should be provided by the system? If I am correct then:

Rookfighter commented 1 year ago

I am not too sure how these dependencies are typically resolved. Are they really system dependencies or could we bundle the dependencies as build2 packages and compile them our selves? Treating them as system dependencies is surely less work, though.

AFAIK there are implementations on github available, so I am not sure if we could create packages for those and make SFML depend on them:

Klaim commented 1 year ago

I am not too sure how these dependencies are typically resolved. Are they really system dependencies or could we bundle the dependencies as build2 packages and compile them our selves? Treating them as system dependencies is surely less work, though.

I'm not 100% sure either but here is my reasoning: I believe that it might be best to treat Open-AL's implementation as provided by the system, as it's supposed to be at the same layer as opengl, so a *meta-package** seems to make sense (as was done for opengl) just providing the api and linking with whatever is in the system. Note that the repository you are pointing is one (software) implementation of the OpenAL api, there are other (mostly closed source ) system implementations too: https://www.openal.org/platforms/ We could also package Soft-OpenAL but that's definitely not what most users will want to use.

Apparently we would not be able to use the opengal meta-package on mac because sfml-audio then use Frameworks (which is provided by the system?) - no idea if it's worth meta-packaging such api that's only provided on one platform though.

I'm almost certain that the codec libraries have to be packaged normally, I'm just not a specialist in that domain so could be wrong. But as far as I know it's pure userland-software + calls to system and gpus potentially. There is no standardized API there and no system-dependant implementation outside their code so all good?