wireshark/doc/plugins.example
João Valverde c451e572e5 plugins.example: Make installation relocatable
Fixes "make install" to be relocatable using DESTDIR. For that
we cannot use an absolute path as intallation directory target.
This is useful mostly to implement packaging using CPack.

It is a bit awkward to configure a default CMAKE_INSTALL_PREFIX
using WiresharkConfig.cmake but it seems to be working OK.

The previous non-relocatable behaviour may still be useful. It is
relegated to a custom "copy_plugin" target.
2022-03-28 13:23:28 +00:00
..
CMakeLists.txt plugins.example: Make installation relocatable 2022-03-28 13:23:28 +00:00
README Plugins.example: Fix typo and more rewording 2022-03-26 00:57:42 +00:00
hello.c Add ws_version.h to wireshark.h 2021-12-21 23:00:04 +00:00

README

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 'README.plugins', that 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 "make install"
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