FindXMLRPC

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.

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.

To list the available features on a system, the xmlrpc-c-config command-line utility can be used.

In CMake, these features can be specified as components with the find_package() command:

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:

find_package(XMLRPC REQUIRED COMPONENTS client)