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:
docs: Build documentation using Pandoc
dotnet: Build DotNet bindings
java: Build Java bindings. Implies -Djni=true
jni: Build with Java Native Interface support
python: Install Python bindings
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.
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:
-Djni=true
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,
jni
is 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.