FindXMLRPC: Update documentation

- Added some basic introduction
- Updated a list of XML-RPC library features (also known as modules)
- Updated example and descriptions
This commit is contained in:
Peter Kokot
2025-03-30 00:25:41 +01:00
parent 7885d5edd9
commit 826a3d8c3f

View File

@@ -5,31 +5,74 @@
FindXMLRPC
----------
Find xmlrpc
Finds the native XML-RPC library for C and C++. XML-RPC is a standard network
protocol that enables remote procedure calls (RPC) between systems. It encodes
requests and responses in XML and uses HTTP as the transport mechanism.
Find the native XMLRPC headers and libraries.
Components
^^^^^^^^^^
::
The XML-RPC C/C++ library consists of various features (modules) that provide
specific functionality. The availability of these features depends on the
installed XML-RPC library version and system configuration. Some features also
have dependencies on others.
XMLRPC_INCLUDE_DIRS - where to find xmlrpc.h, etc.
XMLRPC_LIBRARIES - List of libraries when using xmlrpc.
XMLRPC_FOUND - True if xmlrpc found.
To list the available features on a system, the ``xmlrpc-c-config`` command-line
utility can be used.
XMLRPC modules may be specified as components for this find module.
Modules may be listed by running "xmlrpc-c-config". Modules include:
::
c++ C++ wrapper code
libwww-client libwww-based client
cgi-server CGI-based server
abyss-server ABYSS-based server
Typical usage:
In CMake, these features can be specified as components with the
``find_package()`` command:
.. code-block:: cmake
find_package(XMLRPC REQUIRED libwww-client)
find_package(XMLRPC [COMPONENTS <components>...])
Components may be:
``c++2``
C++ wrapper API, replacing the legacy ``c++`` feature.
``c++``
The legacy C++ wrapper API (superseded by ``c++2``).
``client``
XML-RPC client functions (also available as the legacy libwww-based feature
named ``libwww-client``).
``cgi-server``
CGI-based server functions.
``abyss-server``
Abyss-based server functions.
``pstream-server``
The pstream-based server functions.
``server-util``
Basic server functions (they are automatically included with ``*-server``
features).
``abyss``
Abyss HTTP server (not needed with ``abyss-server``).
``openssl``
OpenSSL convenience functions.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``XMLRPC_INCLUDE_DIRS``
Include directories containing ``xmlrpc.h`` and other headers needed to use
the XML-RPC library.
``XMLRPC_LIBRARIES``
List of libraries needed for linking to XML-RPC library and its requested
features.
``XMLRPC_FOUND``
Boolean indicating whether the XML-RPC library and all its requested
components are found.
Examples
^^^^^^^^
Finding XML-RPC library and its ``client`` feature to use in the project:
.. code-block:: cmake
find_package(XMLRPC REQUIRED COMPONENTS client)
#]=======================================================================]
# First find the config script from which to obtain other values.