FindXMLRPC¶
查找 C 和 C++ 的原生 XML-RPC 库
find_package(XMLRPC [...] [COMPONENTS <components>...] [...])
XML-RPC 是一种标准的网络协议,它允许系统之间进行远程过程调用 (RPC)。它使用 XML 编码请求和响应,并使用 HTTP 作为传输机制。
组件¶
XML-RPC C/C++ 库包含各种功能(模块),提供特定的功能。这些功能的可用性取决于已安装的 XML-RPC 库版本和系统配置。某些功能也依赖于其他功能。
要列出系统上可用的功能,可以使用 xmlrpc-c-config 命令行实用程序。
在 CMake 中,这些功能可以在 find_package() 命令中指定为组件。
find_package(XMLRPC [COMPONENTS <components>...])
组件可以是
c++2C++ 包装器 API,取代了旧的
c++功能。c++旧的 C++ 包装器 API(已被
c++2取代)。clientXML-RPC 客户端函数(也可用作名为
libwww-client的旧版基于 libwww 的功能)。cgi-server基于 CGI 的服务器函数。
abyss-server基于 Abyss 的服务器函数。
pstream-server基于 pstream 的服务器函数。
server-util基本的服务器函数(它们会自动包含在
*-server功能中)。abyssAbyss HTTP 服务器(不需要
abyss-server)。opensslOpenSSL 便利函数。
如果未指定任何组件,则此模块会在不带附加功能的情况下查找 XML-RPC 库及其包含目录。
结果变量¶
此模块定义了以下变量
XMLRPC_FOUND布尔值,指示是否找到了 XML-RPC 库及其所有请求的组件。
XMLRPC_INCLUDE_DIRS包含
xmlrpc.h和其他使用 XML-RPC 库所需的头文件的包含目录。XMLRPC_LIBRARIES链接到 XML-RPC 库及其请求的功能所需的库列表。
示例¶
查找 XML-RPC 库及其 client 功能,并有条件地创建一个接口 导入目标,该目标封装了其链接到项目目标的用法要求。
find_package(XMLRPC REQUIRED COMPONENTS client)
if(XMLRPC_FOUND AND NOT TARGET XMLRPC::XMLRPC)
add_library(XMLRPC::XMLRPC INTERFACE IMPORTED)
set_target_properties(
XMLRPC::XMLRPC
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${XMLRPC_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${XMLRPC_LIBRARIES}"
)
endif()
target_link_libraries(example PRIVATE XMLRPC::XMLRPC)