summaryrefslogtreecommitdiff
path: root/share/cmake-3.2/Modules/FindXMLRPC.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.2/Modules/FindXMLRPC.cmake')
-rw-r--r--share/cmake-3.2/Modules/FindXMLRPC.cmake159
1 files changed, 159 insertions, 0 deletions
diff --git a/share/cmake-3.2/Modules/FindXMLRPC.cmake b/share/cmake-3.2/Modules/FindXMLRPC.cmake
new file mode 100644
index 0000000..1491754
--- /dev/null
+++ b/share/cmake-3.2/Modules/FindXMLRPC.cmake
@@ -0,0 +1,159 @@
+#.rst:
+# FindXMLRPC
+# ----------
+#
+# Find xmlrpc
+#
+# Find the native XMLRPC headers and libraries.
+#
+# ::
+#
+# XMLRPC_INCLUDE_DIRS - where to find xmlrpc.h, etc.
+# XMLRPC_LIBRARIES - List of libraries when using xmlrpc.
+# XMLRPC_FOUND - True if xmlrpc found.
+#
+# 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:
+#
+# ::
+#
+# find_package(XMLRPC REQUIRED libwww-client)
+
+#=============================================================================
+# Copyright 2001-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# First find the config script from which to obtain other values.
+find_program(XMLRPC_C_CONFIG NAMES xmlrpc-c-config)
+
+# Check whether we found anything.
+if(XMLRPC_C_CONFIG)
+ set(XMLRPC_FOUND 1)
+else()
+ set(XMLRPC_FOUND 0)
+endif()
+
+# Lookup the include directories needed for the components requested.
+if(XMLRPC_FOUND)
+ # Use the newer EXECUTE_PROCESS command if it is available.
+ if(COMMAND EXECUTE_PROCESS)
+ execute_process(
+ COMMAND ${XMLRPC_C_CONFIG} ${XMLRPC_FIND_COMPONENTS} --cflags
+ OUTPUT_VARIABLE XMLRPC_C_CONFIG_CFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE XMLRPC_C_CONFIG_RESULT
+ )
+ else()
+ exec_program(${XMLRPC_C_CONFIG} ARGS "${XMLRPC_FIND_COMPONENTS} --cflags"
+ OUTPUT_VARIABLE XMLRPC_C_CONFIG_CFLAGS
+ RETURN_VALUE XMLRPC_C_CONFIG_RESULT
+ )
+ endif()
+
+ # Parse the include flags.
+ if("${XMLRPC_C_CONFIG_RESULT}" STREQUAL "0")
+ # Convert the compile flags to a CMake list.
+ string(REGEX REPLACE " +" ";"
+ XMLRPC_C_CONFIG_CFLAGS "${XMLRPC_C_CONFIG_CFLAGS}")
+
+ # Look for -I options.
+ set(XMLRPC_INCLUDE_DIRS)
+ foreach(flag ${XMLRPC_C_CONFIG_CFLAGS})
+ if("${flag}" MATCHES "^-I(.+)")
+ file(TO_CMAKE_PATH "${CMAKE_MATCH_1}" DIR)
+ list(APPEND XMLRPC_INCLUDE_DIRS "${DIR}")
+ endif()
+ endforeach()
+ else()
+ message("Error running ${XMLRPC_C_CONFIG}: [${XMLRPC_C_CONFIG_RESULT}]")
+ set(XMLRPC_FOUND 0)
+ endif()
+endif()
+
+# Lookup the libraries needed for the components requested.
+if(XMLRPC_FOUND)
+ # Use the newer EXECUTE_PROCESS command if it is available.
+ if(COMMAND EXECUTE_PROCESS)
+ execute_process(
+ COMMAND ${XMLRPC_C_CONFIG} ${XMLRPC_FIND_COMPONENTS} --libs
+ OUTPUT_VARIABLE XMLRPC_C_CONFIG_LIBS
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE XMLRPC_C_CONFIG_RESULT
+ )
+ else()
+ exec_program(${XMLRPC_C_CONFIG} ARGS "${XMLRPC_FIND_COMPONENTS} --libs"
+ OUTPUT_VARIABLE XMLRPC_C_CONFIG_LIBS
+ RETURN_VALUE XMLRPC_C_CONFIG_RESULT
+ )
+ endif()
+
+ # Parse the library names and directories.
+ if("${XMLRPC_C_CONFIG_RESULT}" STREQUAL "0")
+ string(REGEX REPLACE " +" ";"
+ XMLRPC_C_CONFIG_LIBS "${XMLRPC_C_CONFIG_LIBS}")
+
+ # Look for -L flags for directories and -l flags for library names.
+ set(XMLRPC_LIBRARY_DIRS)
+ set(XMLRPC_LIBRARY_NAMES)
+ foreach(flag ${XMLRPC_C_CONFIG_LIBS})
+ if("${flag}" MATCHES "^-L(.+)")
+ file(TO_CMAKE_PATH "${CMAKE_MATCH_1}" DIR)
+ list(APPEND XMLRPC_LIBRARY_DIRS "${DIR}")
+ elseif("${flag}" MATCHES "^-l(.+)")
+ list(APPEND XMLRPC_LIBRARY_NAMES "${CMAKE_MATCH_1}")
+ endif()
+ endforeach()
+
+ # Search for each library needed using the directories given.
+ foreach(name ${XMLRPC_LIBRARY_NAMES})
+ # Look for this library.
+ find_library(XMLRPC_${name}_LIBRARY
+ NAMES ${name}
+ HINTS ${XMLRPC_LIBRARY_DIRS}
+ )
+ mark_as_advanced(XMLRPC_${name}_LIBRARY)
+
+ # If any library is not found then the whole package is not found.
+ if(NOT XMLRPC_${name}_LIBRARY)
+ set(XMLRPC_FOUND 0)
+ endif()
+
+ # Build an ordered list of all the libraries needed.
+ set(XMLRPC_LIBRARIES ${XMLRPC_LIBRARIES} "${XMLRPC_${name}_LIBRARY}")
+ endforeach()
+ else()
+ message("Error running ${XMLRPC_C_CONFIG}: [${XMLRPC_C_CONFIG_RESULT}]")
+ set(XMLRPC_FOUND 0)
+ endif()
+endif()
+
+# Report the results.
+if(NOT XMLRPC_FOUND)
+ set(XMLRPC_DIR_MESSAGE
+ "XMLRPC was not found. Make sure the entries XMLRPC_* are set.")
+ if(NOT XMLRPC_FIND_QUIETLY)
+ message(STATUS "${XMLRPC_DIR_MESSAGE}")
+ else()
+ if(XMLRPC_FIND_REQUIRED)
+ message(FATAL_ERROR "${XMLRPC_DIR_MESSAGE}")
+ endif()
+ endif()
+endif()