This commit introduces a new plugin framework into the codebase of the
Mumble client. Note that "plugin" here really refers to a (more or less)
general purpose plugin and is therefore not to be confused with the
previously available positional data plugins (only responsible for
fetching positional data from a running game and passing that to
Mumble).
The plugin interface is written in C, removing the compiler-dependence
the old "plugins" had. Instead plugins can now be written in an
arbitrary language as long as that language is capable of being compiled
into a shared library and also being capable of being C-compatible.
As already indicated a plugin is essentially a shared library that
provides certain functions that allow Mumble to interface with it.
Inside Mumble the so-called PluginManager is responsible for managing
the plugins and relaying events to the respective callbacks. Plugins
themselves can also interact with Mumble on their own initiative by
using the provided API functions.
Fixes#2455Fixes#2148Fixes#1594Fixes#2051Fixes#3742Fixes#4575Fixes#4751
The process of extending the server's Ice interface was never (properly)
documented anywhere. This is fixed as of now as this commit adds a
step-by-step instruction set for extending the Ice interface with new
functions.
We used mumble-vcpkg while the get script was still being implemented in a separate repository.
When we integrated it in this repository in 2f45772c9c it was already, and still is, using `vcpkg`.
By default this library is needed as the option overlay-xcompile
defaults to ON. Therefore we should list g++-multilib as a dependency
directly and only mention how to get rid of this dependency, not the
other way around.
This will probably avoid some confusion on the reader's side.
The issue of cmake finding an incompatible OpenSSL version was
encountered on macOS in #4486, which is why the problem is also
explicitly mentioned in the macOS instructions.
Includes a script that implementers can basically copy and paste and run in order to use the same process for setting environment and path variables that the developer command prompt uses.
Includes a script that implementers can *basically* copy and paste and
run in order to use the same process for setting environment and path
variables that the developer command prompt uses. # This is the commit
message #2:
This was a leftover from the previous QMake options
but had no effect at all with CMake when enabled.
Distributions should use -DCMAKE_BUILD_TYPE='None'
to compile Mumble with the default compiler flags.
The existing `docs` directory was restructured a bit and the build
documentation previously located at
https://github.com/mumble-voip/mumble-releng-vcpkg was integrated into
the main repository (after having received a good polish).
In addition to that the needed scripts and port-files from the linked
repository have now also been included in the main repo.