
This is an example of how to build a Wireshark plugin out-of-tree. This
is an alternative, more recent way to build Wireshark binary plugins,
than the one in the "Plugins" chapter in the Developer's Guide, and
describes in detail how to include a new plugin into the project source
tree (here called in-tree build). Building a plugin out-of-tree doesn't
require rebuilding the whole Wireshark source tree every time.

You always need to rebuild plugins for each major.minor Wireshark version.
Binary compatibility is never guaranteed between those releases and Wireshark
will explicitly check for which version the plugin was built and refuse
to load it otherwise.

Note that the out-of-tree method builds the plugin using CMake's Config-file
mechanism[1] for configuration. In other words the plugin build system uses
the Wireshark headers that were installed on the system using "sudo make install-headers"
or equivalent (as configured from WiresharkConfig.cmake). This is not the same
as an in-tree build.

You should of course adapt this trivial example to your own needs.

To build/install the plugin:

$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

If your WiresharkConfig.cmake file is not in one of the standard cmake search
paths you will have to tell cmake where to find it. You can do so using
CMAKE_PREFIX_PATH, for example:

$ cmake -DCMAKE_PREFIX_PATH="/opt/wireshark" ..

[1]https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#config-file-packages
