Replies: 1 comment 4 replies
-
Thanks, you're welcome.
To me, this doesn't look like a wrapper, it looks like a meson-replacement-buildsystem. If so, this would be rather fragile. If we make any change to our CMake build system in the future, your "mock" gets out of sync with our buildsystem. It would keep you busy with keeping up with our changes. In worst case, it may continue to work without noticing that something else is broken. Also, your "wrapper" provides no way to execute fluidsynth's unit tests, which I, however, would highly recommend to anybody doing such custom things as you do.
Ok for me.
Ok for me. You're welcome to draft a PR based on the
I'm not sure. It's not maintained by us. So it would be a "yet another custom / unsupported way of building fluidsynth". Is that worth mentioning in our documentation? Because if it didn't work for some reason, people would file a bug, telling me "it's listed in your documentation". And I would tell them "it's not supported, use CMake". If you want, you can ping mawe42, maybe he thinks differently.
Unlikely. I never liked Python. I don't like Meson's syntax. Admittedly, I haven't given it a serious try, so far. But what I've seen so far (yes, I've read your curious link) hasn't convinced me yet, sry. |
Beta Was this translation helpful? Give feedback.
-
I'll start with saying a big thank you for maintaining FluidSynth - a few months ago we integrated it into DOSBox Staging; recently we improved it via putting it into a separate thread and testing results are great. Thank you so much for making the build process so configurable - it really makes our lives easier. And synth quality is just beautiful :).
For the vast majority of users, we recommend installing the lib available in their OS repository, as FluidSynth 2.x is finally widely available, but there are few edge cases when it does not work (e.g. statically-linked builds on macOS for distributing emulator via .dmg file, builds on Raspberry Pi OS, or standalone builds for Ubuntu 18.04).
In the past, we worked around this by having our own wrapper around your buildsystem (link) - not pretty, but it was the only sensible solution in our old buildsystem. Such problem is not unique to FluidSynth, of course (we have similar wrappers for other libraries as well), but it's really annoying to deal with it.
We solved it for other libraries by replacing our old Autoconf-based buildsystem with Meson (for curious why we decided not to use CMake - link) - and it worked great in general… except again, FluidSynth's CMake-based buildsystem was causing us problems… 😞
To fix it once and for all - I am developing Meson-based wrapper for FluidSynth: mesonbuild/fluidsynth#2 - so far it works great for us; and the solution will be reusable by any other Meson-based project out there 😃.
For the first version it's limited only to the minimum set of FluidSynth features that we use, but hey - if you need more in your project using FluidSynth - send PR (or create a request) in https://github.com/mesonbuild/fluidsynth.
OK, with that introduction out of the way, we have an issue with files generated during build time:
fluid_conv_tables.c
andfluid_rvoice_dsp_tables.c
(details), but I wanted to discuss it first before starting work on PR:.inc.h
instead of.c
(or something different, just not.c
- because these files are not compilable).BTW, if in some distant future FluidSynth project will decide to move away from CMake - then this Meson wrapper could be a drop-in solution… ;)
Beta Was this translation helpful? Give feedback.
All reactions