dkager / tolk

Screen reader abstraction library.
GNU Lesser General Public License v3.0
92 stars 42 forks source link

Port Tolk to the Meson Build System #22

Open mcb2003 opened 1 year ago

mcb2003 commented 1 year ago

Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible

This PR adds Meson build system support for Tolk. The Meson build system builds Tolk.dll, TolkDotNet.dll, and Tolk.jar, and is instructed on how to distribute tolk.py, and build and distribute README.html.

I've added the following build-time-configurable Meson options:

By default, they're set to auto, so bindings will automatically be built if the corresponding language compilers / runtimes are found. When building Java bindings, jniis force-enabled.

This makes it significantly easier to use Tolk from Meson projects as a subproject. It also means Tolk benefits from Meson's existing features and compiler / language support and integration, so theoretically one could more easily build Tolk with MinGW in the future.

Using Meson may also pave the way for #5. I know @dkager said in that thread that cross-platform Tolk won't be happening, as their is only 1 viable screen reader for most of the other platforms, but a cross-platform TTS library is sorely needed for applications such as audio games, and besides, on Linux at least, I'm one of the creaters of the Odilia Screen Reader, so there are now multiple Linux screen readers that Tolk could implement support for.

Either way, having a proper build system makes this project easier to build and use in other projects. It is even possible to generate a CMake package file using Meson, though I haven't yet done this.