diff --git a/.gitignore b/.gitignore index 3a36f38..9dd191a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ /xmlrpc-c-1.32.5.tar.xz +/xmlrpc-c-1.47.1.tar.xz +/xmlrpc-c-1.48.0.tar.xz +/xmlrpc-c-1.49.02.tar.xz +/xmlrpc-c-1.51.0.tar.xz +/xmlrpc-1.51.08.tgz +/xmlrpc-c-1.59.02.tgz +/xmlrpc-c-1.59.03.tgz +/xmlrpc-c-1.60.04.tgz diff --git a/xmlrpc-c-longlong.patch b/0002-Use-proper-datatypes-for-long-long.patch similarity index 72% rename from xmlrpc-c-longlong.patch rename to 0002-Use-proper-datatypes-for-long-long.patch index 8f2f06e..25c7efe 100644 --- a/xmlrpc-c-longlong.patch +++ b/0002-Use-proper-datatypes-for-long-long.patch @@ -1,7 +1,7 @@ -From 4d3bbc5d59418666a5fc91c8fe3e301ee9c89b32 Mon Sep 17 00:00:00 2001 +From aca713786debd68c81a823c5989afb3de82da45b Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 5 Apr 2008 11:41:34 +0200 -Subject: [PATCH 3/8] Use proper datatypes for 'long long' +Subject: [PATCH 2/3] Use proper datatypes for 'long long' xmlrpc-c uses 'long long' at some places (e.g. in printf statements with PRId64) under the assumption that it has a @@ -16,13 +16,13 @@ It is arguable whether 'int_least64_t' (and 'int_least32_t') would be a better choice for 'int64_t' (and 'int32_t'), but for now, the patch uses datatypes with exact widths. --- - include/xmlrpc-c/base.h | 7 ++++--- - lib/libutil/string_number.c | 1 + - src/cpp/param_list.cpp | 8 ++++---- - 3 files changed, 9 insertions(+), 7 deletions(-) + include/xmlrpc-c/base.h | 7 ++++--- + lib/libutil/string_number.c | 1 + + src/cpp/param_list.cpp | 2 +- + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/xmlrpc-c/base.h b/include/xmlrpc-c/base.h -index cdc9161..cbdf3d0 100644 +index e74e2c5..90f2c91 100644 --- a/include/xmlrpc-c/base.h +++ b/include/xmlrpc-c/base.h @@ -5,6 +5,7 @@ @@ -31,9 +31,9 @@ index cdc9161..cbdf3d0 100644 #include +#include #include - #include + #include /* For XMLRPC_DLLEXPORT */ #include -@@ -50,9 +51,9 @@ xmlrpc_version(unsigned int * const majorP, +@@ -73,9 +74,9 @@ xmlrpc_version(unsigned int * const majorP, typedef signed int xmlrpc_int; /* An integer of the type defined by XML-RPC ; i.e. 32 bit */ @@ -45,7 +45,7 @@ index cdc9161..cbdf3d0 100644 /* An integer of the type defined by "XML-RPC" ; i.e. 64 bit */ typedef int xmlrpc_bool; /* A boolean (of the type defined by XML-RPC , but there's -@@ -89,7 +90,7 @@ typedef int xmlrpc_socket; +@@ -112,7 +113,7 @@ typedef int xmlrpc_socket; #define XMLRPC_INT32_MAX 0x7fffffff #define XMLRPC_INT32_MIN (-XMLRPC_INT32_MAX - 1) @@ -67,23 +67,9 @@ index 1c284af..a7e78ad 100644 #include diff --git a/src/cpp/param_list.cpp b/src/cpp/param_list.cpp -index 67c636b..60f7df9 100644 +index 1f7ae41..60f7df9 100644 --- a/src/cpp/param_list.cpp +++ b/src/cpp/param_list.cpp -@@ -265,10 +265,10 @@ paramList::getNil(unsigned int const paramNumber) const { - - - --long long -+xmlrpc_int64 - paramList::getI8(unsigned int const paramNumber, -- long long const minimum, -- long long const maximum) const { -+ xmlrpc_int64 const minimum, -+ xmlrpc_int64 const maximum) const { - - if (paramNumber >= this->paramVector.size()) - throw(fault("Not enough parameters", fault::CODE_TYPE)); @@ -277,7 +277,7 @@ paramList::getI8(unsigned int const paramNumber, throw(fault("Parameter that is supposed to be 64-bit integer is not", fault::CODE_TYPE)); @@ -94,5 +80,5 @@ index 67c636b..60f7df9 100644 if (longlongvalue < minimum) -- -1.7.4 +2.13.1 diff --git a/xmlrpc-c-30x-redirect.patch b/0003-allow-30x-redirections.patch similarity index 76% rename from xmlrpc-c-30x-redirect.patch rename to 0003-allow-30x-redirections.patch index a2d4446..2fef64d 100644 --- a/xmlrpc-c-30x-redirect.patch +++ b/0003-allow-30x-redirections.patch @@ -1,17 +1,18 @@ -From 255ebf4b1204124123971a3bb27741cccbb51692 Mon Sep 17 00:00:00 2001 +From 9bb040a9ae29e1b5afcb674c74f107114b316818 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 29 Jul 2010 19:25:32 +0200 -Subject: [PATCH 5/8] allow 30x redirections +Subject: [PATCH 3/3] allow 30x redirections --- - lib/curl_transport/curltransaction.c | 4 ++++ + lib/curl_transport/curltransaction.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/curl_transport/curltransaction.c b/lib/curl_transport/curltransaction.c -index 0f76fc2..6292aee 100644 +index f0aafae..b5392a9 100644 --- a/lib/curl_transport/curltransaction.c +++ b/lib/curl_transport/curltransaction.c -@@ -600,6 +600,10 @@ setupCurlSession(xmlrpc_env * const envP, +@@ -671,6 +671,10 @@ setupCurlSession(xmlrpc_env * const envP, + curl_easy_setopt(curlSessionP, CURLOPT_POST, 1); curl_easy_setopt(curlSessionP, CURLOPT_URL, transP->serverUrl); @@ -23,5 +24,5 @@ index 0f76fc2..6292aee 100644 if (!envP->fault_occurred) { curl_easy_setopt(curlSessionP, CURLOPT_POSTFIELDS, -- -1.7.10.4 +2.13.1 diff --git a/Makefile b/Makefile deleted file mode 100644 index 9e6c752..0000000 --- a/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -MAKEFILE_COMMON = $(HOME)/.fedora/common.mk --include $(MAKEFILE_COMMON) - -all: - -SVN_VER ?= ${VERSION} - -svn-sources: - cd $(DESTDIR) . && svn export https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced@${SVN_REV} xmlrpc-c-${SVN_VER} - cd $(DESTDIR) . && tar cJf xmlrpc-c-${SVN_VER}.tar.xz xmlrpc-c-${SVN_VER} --owner root --group root --mode=go-w,a+rX diff --git a/dfs.cc b/dfs.cc deleted file mode 100644 index c7d9535..0000000 --- a/dfs.cc +++ /dev/null @@ -1,104 +0,0 @@ -/* --*- c++ -*-- - * Copyright (C) 2010 Enrico Scholz - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include - -class node { - public: - node(std::string const &name) : name_(name) {} - void add_child(class node *n) - { - children_.push_back(n); - } - - void dfs(std::list &res); - bool visited; - - private: - std::string const name_; - std::list children_; -}; - -void node::dfs(std::list &res) -{ - std::list::iterator i; - - visited = true; - - for (i = children_.begin(); i != children_.end(); ++i) { - if ((*i)->visited) - continue; - - (*i)->dfs(res); - } - - res.push_front(name_); -} - -int main(void) -{ - std::map nodes; - - for (;;) { - std::string name; - class node *cur_node; - - std::cin >> name; - if (!std::cin.good()) - break; - - if (nodes.find(name) == nodes.end()) - nodes[name] = new node(name); - - cur_node = nodes[name]; - - while (std::cin.good()) { - std::cin >> name; - - if (name == "##") - break; - - if (nodes.find(name) == nodes.end()) - nodes[name] = new node(name); - - cur_node->add_child(nodes[name]); - } - } - - typedef std::map::iterator node_iterator; - - for (node_iterator n = nodes.begin(); n != nodes.end(); ++n) { - for (node_iterator m = nodes.begin(); - m != nodes.end(); ++m) - m->second->visited = false; - - std::list res(nodes.size()); - n->second->dfs(res); - - for (std::list::const_iterator i = res.begin(); - i != res.end(); ++i) - std::cout << *i << " "; - - std::cout << std::endl; - } -} diff --git a/dso-fixup b/dso-fixup deleted file mode 100755 index 4045bf0..0000000 --- a/dso-fixup +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/bash -# Copyright (C) 2010 Enrico Scholz -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 3 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -## Usage: dso-fixup * - -BR=$1 -LIBDIR=$2 -PATTERN=$3 -shift 3 - -for i; do - echo -n $(basename "$i")' ' - readelf -d $i | sed "\\!(NEEDED).*${PATTERN}!"'s/[^:]\+: \[\(.*\)\]/\1/p;d' | xargs echo -n - echo " ##" -done | ./depsort | while read lib deps; do - link=$BR$LIBDIR/${lib%.so.*}.so - test -L "$link" || { - echo "bad file '$link'" >&2 - exit 1 - } - - set -- $deps - test $# -ne 0 || continue - - rm -f $link - - - { - echo '/* GNU ld script */' - echo -n "INPUT($LIBDIR/$lib" - d= - if test "$#" -gt 0; then - echo -n " AS_NEEDED(" - for i; do - echo -n "$d$LIBDIR/$i" - d=' ' - done - echo -n ")" - fi - echo ")" - } > "$link" - - chmod 0644 "$link" -done diff --git a/lastver b/lastver deleted file mode 100644 index 0b0d24a..0000000 --- a/lastver +++ /dev/null @@ -1 +0,0 @@ -2451 diff --git a/sources b/sources index 0161d65..0b86711 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5c8a328f52e4f010d1ea3b56ae685874 xmlrpc-c-1.32.5.tar.xz +SHA512 (xmlrpc-c-1.60.04.tgz) = 68407053eec1e3f32187169f5bb976e9f043f1576dd9fb7a9076ed00414dd0293cfdf72527a314c244dd48986402af3c9cc33d110ed3b382a13190eb8dddb734 diff --git a/verinfo b/verinfo deleted file mode 100644 index b5946f6..0000000 --- a/verinfo +++ /dev/null @@ -1,2 +0,0 @@ -http://xmlrpc-c.svn.sourceforge.net/viewvc/xmlrpc-c/advanced/ -revision=([0-9]+) diff --git a/xmlrpc-c-check-vasprintf-return-value.patch b/xmlrpc-c-check-vasprintf-return-value.patch deleted file mode 100644 index cfc7f45..0000000 --- a/xmlrpc-c-check-vasprintf-return-value.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 80047d74644eeda55c451aea59951eb502649cf4 Mon Sep 17 00:00:00 2001 -From: Enrico Scholz -Date: Thu, 29 Jul 2010 19:43:08 +0200 -Subject: [PATCH 7/8] check vasprintf return value - ---- - lib/libutil/asprintf.c | 3 ++- - lib/util/casprintf.c | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/lib/libutil/asprintf.c b/lib/libutil/asprintf.c -index a79cd81..5a06f0f 100644 ---- a/lib/libutil/asprintf.c -+++ b/lib/libutil/asprintf.c -@@ -121,7 +121,8 @@ xmlrpc_vasprintf(const char ** const retvalP, - char * string; - - #if HAVE_ASPRINTF -- vasprintf(&string, fmt, varargs); -+ if (vasprintf(&string, fmt, varargs) < 0) -+ string = NULL; - #else - simpleVasprintf(&string, fmt, varargs); - #endif -diff --git a/lib/util/casprintf.c b/lib/util/casprintf.c -index 643f145..9139253 100644 ---- a/lib/util/casprintf.c -+++ b/lib/util/casprintf.c -@@ -99,7 +99,8 @@ cvasprintf(const char ** const retvalP, - char * string; - - #if HAVE_ASPRINTF -- vasprintf(&string, fmt, varargs); -+ if (vasprintf(&string, fmt, varargs) < 0) -+ string = NULL; - #else - simpleVasprintf(&string, fmt, varargs); - #endif --- -1.7.3.4 - diff --git a/xmlrpc-c-cmake.patch b/xmlrpc-c-cmake.patch deleted file mode 100644 index 6d544fb..0000000 --- a/xmlrpc-c-cmake.patch +++ /dev/null @@ -1,2128 +0,0 @@ -From 26a4d5168bb69474c3cc304f90592d37bf0be8fe Mon Sep 17 00:00:00 2001 -From: Enrico Scholz -Date: Sat, 5 Apr 2008 10:55:02 +0200 -Subject: [PATCH 1/8] make -> cmake transition - -cmake: updated ---- - CMakeLists.txt | 290 +++++++++++++++++++++++++++ - cmake/try-attr.cc | 3 + - cmake/va-list-is-array.c | 9 + - examples/CMakeLists.txt | 68 +++++++ - examples/config.h | 1 + - examples/cpp/CMakeLists.txt | 34 ++++ - include/CMakeLists.txt | 3 + - include/xmlrpc-c/CMakeLists.txt | 74 +++++++ - include/xmlrpc-c/config.h.cmake | 34 ++++ - lib/CMakeLists.txt | 12 ++ - lib/abyss/CMakeLists.txt | 3 + - lib/abyss/src/CMakeLists.txt | 70 +++++++ - lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++ - lib/curl_transport/CMakeLists.txt | 20 ++ - lib/expat/CMakeLists.txt | 9 + - lib/expat/gennmtab/CMakeLists.txt | 3 + - lib/expat/xmlparse/CMakeLists.txt | 7 + - lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | 12 ++ - lib/expat/xmltok/CMakeLists.txt | 23 +++ - lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 + - lib/libutil/CMakeLists.txt | 26 +++ - lib/libutil/xmlrpc_util.pc.cmake | 10 + - lib/libwww_transport/CMakeLists.txt | 7 + - lib/util/CMakeLists.txt | 17 ++ - lib/wininet_transport/CMakeLists.txt | 7 + - src/CMakeLists.txt | 121 +++++++++++ - src/cpp/CMakeLists.txt | 70 +++++++ - src/cpp/test/CMakeLists.txt | 18 ++ - src/cpp/xmlrpc++.pc.cmake | 12 ++ - src/cpp/xmlrpc_client++.pc.cmake | 12 ++ - src/cpp/xmlrpc_cpp.pc.cmake | 12 ++ - src/cpp/xmlrpc_packetsocket.pc.cmake | 12 ++ - src/cpp/xmlrpc_server++.pc.cmake | 12 ++ - src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 ++ - src/cpp/xmlrpc_server_cgi++.pc.cmake | 12 ++ - src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 ++ - src/xmlrpc.pc.cmake | 12 ++ - src/xmlrpc_client.pc.cmake | 12 ++ - src/xmlrpc_server.pc.cmake | 12 ++ - src/xmlrpc_server_abyss.pc.cmake | 12 ++ - src/xmlrpc_server_cgi.pc.cmake | 12 ++ - test/CMakeLists.txt | 41 ++++ - test/cpp/CMakeLists.txt | 34 ++++ - tools/CMakeLists.txt | 22 ++ - tools/binmode-rpc-kit/CMakeLists.txt | 1 + - tools/lib/CMakeLists.txt | 1 + - tools/turbocharger/CMakeLists.txt | 1 + - tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++ - tools/xml-rpc-api2txt/CMakeLists.txt | 7 + - tools/xml/CMakeLists.txt | 16 ++ - tools/xmlrpc/CMakeLists.txt | 17 ++ - tools/xmlrpc/config.h | 1 + - tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++ - tools/xmlrpc_pstream/CMakeLists.txt | 16 ++ - tools/xmlrpc_transport/CMakeLists.txt | 9 + - tools/xmlrpc_transport/config.h | 1 + - transport_config.h.cmake | 16 ++ - version.h.cmake | 5 + - xmlrpc-c-config | 105 ++++++++++ - xmlrpc_config.h.cmake | 183 +++++++++++++++++ - 60 files changed, 1636 insertions(+) - create mode 100644 CMakeLists.txt - create mode 100644 cmake/try-attr.cc - create mode 100644 cmake/va-list-is-array.c - create mode 100644 examples/CMakeLists.txt - create mode 100644 examples/config.h - create mode 100644 examples/cpp/CMakeLists.txt - create mode 100644 include/CMakeLists.txt - create mode 100644 include/xmlrpc-c/CMakeLists.txt - create mode 100644 include/xmlrpc-c/config.h.cmake - create mode 100644 lib/CMakeLists.txt - create mode 100644 lib/abyss/CMakeLists.txt - create mode 100644 lib/abyss/src/CMakeLists.txt - create mode 100644 lib/abyss/src/xmlrpc_abyss.pc.cmake - create mode 100644 lib/curl_transport/CMakeLists.txt - create mode 100644 lib/expat/CMakeLists.txt - create mode 100644 lib/expat/gennmtab/CMakeLists.txt - create mode 100644 lib/expat/xmlparse/CMakeLists.txt - create mode 100644 lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake - create mode 100644 lib/expat/xmltok/CMakeLists.txt - create mode 100644 lib/expat/xmltok/xmlrpc_xmltok.pc.cmake - create mode 100644 lib/libutil/CMakeLists.txt - create mode 100644 lib/libutil/xmlrpc_util.pc.cmake - create mode 100644 lib/libwww_transport/CMakeLists.txt - create mode 100644 lib/util/CMakeLists.txt - create mode 100644 lib/wininet_transport/CMakeLists.txt - create mode 100644 src/CMakeLists.txt - create mode 100644 src/cpp/CMakeLists.txt - create mode 100644 src/cpp/test/CMakeLists.txt - create mode 100644 src/cpp/xmlrpc++.pc.cmake - create mode 100644 src/cpp/xmlrpc_client++.pc.cmake - create mode 100644 src/cpp/xmlrpc_cpp.pc.cmake - create mode 100644 src/cpp/xmlrpc_packetsocket.pc.cmake - create mode 100644 src/cpp/xmlrpc_server++.pc.cmake - create mode 100644 src/cpp/xmlrpc_server_abyss++.pc.cmake - create mode 100644 src/cpp/xmlrpc_server_cgi++.pc.cmake - create mode 100644 src/cpp/xmlrpc_server_pstream++.pc.cmake - create mode 100644 src/xmlrpc.pc.cmake - create mode 100644 src/xmlrpc_client.pc.cmake - create mode 100644 src/xmlrpc_server.pc.cmake - create mode 100644 src/xmlrpc_server_abyss.pc.cmake - create mode 100644 src/xmlrpc_server_cgi.pc.cmake - create mode 100644 test/CMakeLists.txt - create mode 100644 test/cpp/CMakeLists.txt - create mode 100644 tools/CMakeLists.txt - create mode 100644 tools/binmode-rpc-kit/CMakeLists.txt - create mode 100644 tools/lib/CMakeLists.txt - create mode 100644 tools/turbocharger/CMakeLists.txt - create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt - create mode 100644 tools/xml-rpc-api2txt/CMakeLists.txt - create mode 100644 tools/xml/CMakeLists.txt - create mode 100644 tools/xmlrpc/CMakeLists.txt - create mode 100644 tools/xmlrpc/config.h - create mode 100644 tools/xmlrpc_cpp_proxy/CMakeLists.txt - create mode 100644 tools/xmlrpc_pstream/CMakeLists.txt - create mode 100644 tools/xmlrpc_transport/CMakeLists.txt - create mode 100644 tools/xmlrpc_transport/config.h - create mode 100644 transport_config.h.cmake - create mode 100644 version.h.cmake - create mode 100755 xmlrpc-c-config - create mode 100644 xmlrpc_config.h.cmake - -diff --git a/CMakeLists.txt b/CMakeLists.txt -new file mode 100644 -index 0000000..2876dea ---- /dev/null -+++ b/CMakeLists.txt -@@ -0,0 +1,290 @@ -+## -*- cmake -*- -+project(xmlrpc-c) -+include(FindPkgConfig) -+include(CheckIncludeFile) -+include(CheckFunctionExists) -+ -+cmake_minimum_required(VERSION 2.4) -+ -+if(COMMAND cmake_policy) -+ cmake_policy(SET CMP0003 NEW) -+endif() -+ -+ -+set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") -+set(XMLRPC_C_VERSION_MINOR "32" CACHE STRING "Version (minor) of xmlrpc-c") -+set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c") -+ -+set(XMLRPC_C_VERSION -+ "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" -+ CACHE STRING "Version of xmlrpc-c") -+ -+set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}") -+set(XMLRPC_C_SOVERSION "3") -+ -+set(XMLRPC_CXX_LIBVERSION "8.${XMLRPC_C_VERSION_MINOR}") -+set(XMLRPC_CXX_SOVERSION "8") -+ -+string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}") -+string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MINOR_NUM "${XMLRPC_C_VERSION_MINOR}") -+string(REGEX REPLACE "^0+(.)" "\\1" XMLRPC_C_VERSION_POINT_NUM "${XMLRPC_C_VERSION_POINT}") -+ -+ -+macro(ensc_set_bool NAME VALUE DESC) -+ set(${NAME} ${VALUE} CACHE BOOL ${DESC}) -+ if(${NAME}) -+ set(_${NAME} 1) -+ else(${NAME}) -+ set(_${NAME} 0) -+ endif(${NAME}) -+endmacro(ensc_set_bool) -+ -+macro(ensc_pkgconfig COMP) -+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${COMP}.pc.cmake -+ ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc -+ @ONLY) -+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc -+ DESTINATION ${pkgconfdir}) -+endmacro(ensc_pkgconfig) -+ -+macro(ensc_pkgconfig_lib TARGET LIBS) -+ get_target_property(libtype ${TARGET} TYPE) -+ if("${libtype}" STREQUAL "STATIC_LIBRARY") -+ list(APPEND ${TARGET}_pkgconfig_libs "${LIBS}") -+ endif("${libtype}" STREQUAL "STATIC_LIBRARY") -+endmacro(ensc_pkgconfig_lib) -+ -+macro(ensc_set_link_exe_flags) -+ ## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it -+ if(NOT MUST_BUILD_LIBWWW_CLIENT) -+ set_target_properties(${ARGV} -+ PROPERTIES -+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS}) -+ endif(NOT MUST_BUILD_LIBWWW_CLIENT) -+endmacro(ensc_set_link_exe_flags) -+ -+########### -+if(WIN32) -+ find_program(WININET_CONFIG_EXECUTABLE wininet-config) -+ -+ if(DEFINED MUST_BUILD_WININET_CLIENT) -+ set(tmp ${MUST_BUILD_WININET_CLIENT}) -+ else(DEFINED MUST_BUILD_WININET_CLIENT) -+ if(WININET_CONFIG_EXECUTABLE) -+ set(tmp 1) -+ else(WININET_CONFIG_EXECUTABLE) -+ set(tmp 0) -+ endif(WININET_CONFIG_EXECUTABLE) -+ endif(DEFINED MUST_BUILD_WININET_CLIENT) -+ -+ set(MSVCRT yes) -+else(WIN32) -+ set(tmp 0) -+endif(WIN32) -+ -+if(tmp) -+ set(MUST_BUILD_CLIENT 1) -+ exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE WININET_VERSION) -+ exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE WININET_CFLAGS) -+ exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE WININET_LDADD) -+ message(STATUS "Using WinInet ${WININET_VERSION} transport") -+endif(tmp) -+ -+ensc_set_bool(MUST_BUILD_WININET_CLIENT ${tmp} "Set iff WinInet client transport shall be built") -+set(wininet_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/wininet_transport) -+ -+########### -+if(DEFINED MUST_BUILD_CURL_CLIENT) -+ set(tmp REQUIRED) -+else(DEFINED MUST_BUILD_CURL_CLIENT) -+ set(tmp) -+endif(DEFINED MUST_BUILD_CURL_CLIENT) -+ -+pkg_check_modules(CURL ${tmp} libcurl) -+ -+ensc_set_bool(MUST_BUILD_CURL_CLIENT ${CURL_FOUND} "Set iff Curl client transport shall be built") -+set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport) -+ -+if(MUST_BUILD_CURL_CLIENT) -+ set(MUST_BUILD_CLIENT 1) -+endif(MUST_BUILD_CURL_CLIENT) -+ -+########### -+find_program(LIBWWW_CONFIG_EXECUTABLE libwww-config) -+if(DEFINED MUST_BUILD_LIBWWW_CLIENT) -+ set(tmp ${MUST_BUILD_LIBWWW_CLIENT}) -+else(DEFINED MUST_BUILD_LIBWWW_CLIENT) -+ if(LIBWWW_CONFIG_EXECUTABLE) -+ set(tmp 1) -+ else(LIBWWW_CONFIG_EXECUTABLE) -+ set(tmp 0) -+ endif(LIBWWW_CONFIG_EXECUTABLE) -+endif(DEFINED MUST_BUILD_LIBWWW_CLIENT) -+ -+if(tmp) -+ set(MUST_BUILD_CLIENT 1) -+ exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LIBWWW_VERSION) -+ exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE LIBWWW_LIBS) -+ exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE LIBWWW_CFLAGS) -+ message(STATUS "Using libwww ${LIBWWW_VERSION} transport") -+endif(tmp) -+ensc_set_bool(MUST_BUILD_LIBWWW_CLIENT ${tmp} "Set iff LibWWW client transport shall be built") -+set(libwww_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/libwww_transport) -+ -+############ -+ -+set(ENABLE_CGI_SERVER 1 CACHE BOOL "Set iff CGI server shall be enabled") -+set(ENABLE_CPLUSPLUS 1 CACHE BOOL "Set iff C++ part shall be enabled") -+set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff Abyss server shall be enabled") -+set(ENABLE_LIBXML2_BACKEND 1 CACHE BOOL "Set iff libxml2 backend shall be used") -+set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff abyss server shall be enabled") -+set(ENABLE_ABYSS_THREADS 1 CACHE BOOL "Use pthread") -+ -+if(ENABLE_LIBXML2_BACKEND) -+ pkg_check_modules(LIBXML2 libxml-2.0) -+ -+ if(LIBXML2_FOUND) -+ set(libxml_pkgconfig libxml-2.0) # TODO: add more alternative modules -+ endif(LIBXML2_FOUND) -+endif(ENABLE_LIBXML2_BACKEND) -+ -+########### -+ -+pkg_check_modules(NCURSES ncurses) -+find_library(READLINE readline) -+ -+if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT) -+ if (NCURSES_FOUND AND READLINE) -+ set(BUILD_XMLRPC_PSTREAM 1) -+ message(STATUS "Building xmlrpc_pstream tool") -+ endif() -+ message(STATUS "Tools will be built") -+ set(BUILD_TOOLS 1) -+else() -+ message(STATUS "Tools will not be built") -+ set(BUILD_TOOLS 0) -+endif() -+ -+#### tests -+check_include_file(wchar.h _have_wchar_h) -+if(_have_wchar_h) -+ set(HAVE_WCHAR_H 1) -+else(_have_wchar_h) -+ set(HAVE_WCHAR_H 1) -+endif(_have_wchar_h) -+set(XMLRPC_HAVE_WCHAR ${HAVE_WCHAR_H}) -+set(HAVE_WCHAR_H_DEFINE ${HAVE_WCHAR_H}) -+ -+ -+####### -+set(LINKER_AS_NEEDED 1 CACHE BOOL "Use the --as-needed linker option") -+if(LINKER_AS_NEEDED) -+ set(XMLRPC_LINKER_FLAGS "-Wl,--as-needed") -+endif(LINKER_AS_NEEDED) -+ -+ -+try_compile(HAVE_ATTR_UNUSED -+ ${CMAKE_BINARY_DIR}/ -+ ${xmlrpc-c_SOURCE_DIR}/cmake/try-attr.cc -+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DCMAKE_TEST_ATTR=__unused__) -+ -+try_compile(VA_LIST_IS_NOT_ARRAY -+ ${CMAKE_BINARY_DIR}/ -+ ${xmlrpc-c_SOURCE_DIR}/cmake/va-list-is-array.c) -+ -+if(VA_LIST_IS_NOT_ARRAY) -+ set(VA_LIST_IS_ARRAY 0) -+ message(STATUS "va_list is not an array") -+else(VA_LIST_IS_NOT_ARRAY) -+ set(VA_LIST_IS_ARRAY 1) -+ message(STATUS "va_list is an array") -+endif(VA_LIST_IS_NOT_ARRAY) -+ -+ -+if(HAVE_ATTR_UNUSED) -+ set(ATTR_UNUSED "__attribute__((__unused__))") -+endif(HAVE_ATTR_UNUSED) -+ -+if(WIN32) -+ set(DIRECTORY_SEPARATOR "\\") -+ set(THREAD_LIBS "") -+else(WIN32) -+ set(DIRECTORY_SEPARATOR "/") -+ set(THREAD_LIBS "pthread") -+ set(THREAD_LIBS_PKGCONFIG "-lpthread") -+endif(WIN32) -+ -+check_include_file(sys/filio.h HAVE_SYS_FILIO_H) -+check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H) -+check_include_file(sys/select.h HAVE_SYS_SELECT_H) -+check_function_exists(setenv HAVE_SETENV) -+check_function_exists(strcasecmp HAVE_STRCASECMP) -+check_function_exists(_stricmp HAVE__STRICMP) -+check_function_exists(stricmp HAVE_STRICMP) -+check_function_exists(strtoll HAVE_STRTOLL) -+check_function_exists(__strtoll HAVE___STRTOLL) -+check_function_exists(strtoull HAVE_STRTOULL) -+check_function_exists(__strtoull HAVE___STRTOULL) -+check_function_exists(strtoq HAVE_STRTOQ) -+check_function_exists(strtouq HAVE_STRTOUQ) -+check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) -+check_function_exists(setgroups HAVE_SETGROUPS) -+check_function_exists(asprintf HAVE_ASPRINTF) -+check_function_exists(pselect HAVE_PSELECT) -+check_function_exists(wcsncmp HAVE_WCSNCMP) -+check_function_exists(localtime_r HAVE_LOCALTIME_R) -+check_function_exists(gmtime_r HAVE_GMTIME_R) -+ -+ -+configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake -+ ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h -+ ESCAPE_QUOTES @ONLY) -+ -+configure_file(${xmlrpc-c_SOURCE_DIR}/version.h.cmake -+ ${xmlrpc-c_BINARY_DIR}/version.h -+ ESCAPE_QUOTES @ONLY) -+ -+configure_file(${xmlrpc-c_SOURCE_DIR}/transport_config.h.cmake -+ ${xmlrpc-c_BINARY_DIR}/transport_config.h -+ ESCAPE_QUOTES @ONLY) -+ -+configure_file(${xmlrpc-c_SOURCE_DIR}/include/xmlrpc-c/config.h.cmake -+ ${xmlrpc-c_BINARY_DIR}/include/xmlrpc-c/config.h -+ ESCAPE_QUOTES @ONLY) -+ -+ -+include_directories(${xmlrpc-c_SOURCE_DIR}/include) -+include_directories(${xmlrpc-c_BINARY_DIR}/include) -+include_directories(${xmlrpc-c_SOURCE_DIR}/lib/util/include) -+include_directories(${xmlrpc-c_BINARY_DIR}) -+ -+add_custom_target(dist -+ rm -rf _dist && mkdir -p _dist/xmlrpc-c-${XMLRPC_C_VERSION} -+ COMMAND cp -a ${xmlrpc-c_SOURCE_DIR}/* _dist/xmlrpc-c-${XMLRPC_C_VERSION}/ -+ COMMAND cd _dist && tar cjf ../xmlrpc-c-${XMLRPC_C_VERSION}.tar.bz2 xmlrpc-c-${XMLRPC_C_VERSION} --exclude=.git --exclude=CVS --exclude=.svn -+ ) -+ -+set(_lib lib CACHE STRING "Basename of the library-directory; usually 'lib' or 'lib64' (on multilib archs)") -+set(_bin bin CACHE STRING "Basename of the bin-directory; usually 'bin'") -+set(prefix ${CMAKE_INSTALL_PREFIX}) -+set(libdir "${prefix}/${_lib}") -+set(bindir "${prefix}/${_bin}") -+set(mandir "${prefix}/share/man") -+set(pkgconfdir "${libdir}/pkgconfig") -+set(includedir "${prefix}/include") -+ -+############# -+ -+install(PROGRAMS xmlrpc-c-config DESTINATION ${_bin}) -+ -+enable_testing() -+ -+add_subdirectory(test) -+add_subdirectory(lib) -+add_subdirectory(examples) -+add_subdirectory(include) -+add_subdirectory(src) -+ -+if (BUILD_TOOLS) -+ add_subdirectory(tools) -+endif() -diff --git a/cmake/try-attr.cc b/cmake/try-attr.cc -new file mode 100644 -index 0000000..4668c5b ---- /dev/null -+++ b/cmake/try-attr.cc -@@ -0,0 +1,3 @@ -+int x __attribute__((CMAKE_TEST_ATTR)); -+ -+int main() {} -diff --git a/cmake/va-list-is-array.c b/cmake/va-list-is-array.c -new file mode 100644 -index 0000000..1ad0bab ---- /dev/null -+++ b/cmake/va-list-is-array.c -@@ -0,0 +1,9 @@ -+#include -+ -+void foo() -+{ -+ va_list list1, list2; -+ list1 = list2; -+} -+ -+int main() {} -diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt -new file mode 100644 -index 0000000..1535adf ---- /dev/null -+++ b/examples/CMakeLists.txt -@@ -0,0 +1,68 @@ -+# -*- cmake -*- -+ -+include_directories(${CMAKE_CURRENT_BINARY_DIR}) -+ -+macro(ensc_add_example name ext class) -+ # HACK: avoid name collision of c and c++ program -+ if("${ext}" STREQUAL "cpp") -+ set(_target ${name}++) -+ else("${ext}" STREQUAL "cpp") -+ set(_target ${name}) -+ endif("${ext}" STREQUAL "cpp") -+ -+ add_executable(${_target} ${name}.${ext}) -+ target_link_libraries(${_target} ${${class}_LIBS}) -+ list(APPEND ${class}_TARGETS ${_target}) -+ list(APPEND example_TARGETS ${_target}) -+endmacro(ensc_add_example) -+ -+if(ENABLE_CPLUSPLUS) -+ add_subdirectory(cpp) -+endif(ENABLE_CPLUSPLUS) -+ -+ -+set(base_LIBS xmlrpc) -+ensc_add_example(json c base) -+ensc_add_example(gen_sample_add_xml c base) -+ensc_add_example(parse_xml c base) -+ -+if(MUST_BUILD_CLIENT) -+ set(client_LIBS xmlrpc_client) -+ -+ ensc_add_example(auth_client c client) -+ ensc_add_example(compound_value_client c client) -+ ensc_add_example(synch_client c client) -+ ensc_add_example(xmlrpc_sample_add_client c client) -+ ensc_add_example(xmlrpc_asynch_client c client) -+endif(MUST_BUILD_CLIENT) -+ -+if(MUST_BUILD_CURL_CLIENT) -+ set(client_LIBS xmlrpc_client) -+ -+ if(NOT DEFINED MSVCRT) -+ ensc_add_example(interrupted_client c client) -+ endif(NOT DEFINED MSVCRT) -+endif(MUST_BUILD_CURL_CLIENT) -+ -+if(ENABLE_CGI_SERVER) -+ set(cgi_server_LIBS xmlrpc_server_cgi) -+ -+ ensc_add_example(xmlrpc_sample_add_server_cgi c cgi_server) -+endif(ENABLE_CGI_SERVER) -+ -+if(ENABLE_ABYSS_SERVER) -+ set(abyss_server_LIBS xmlrpc_server_abyss) -+ -+ ensc_add_example(compound_value_server c abyss_server) -+ ensc_add_example(xmlrpc_inetd_server c abyss_server) -+ ensc_add_example(xmlrpc_socket_server c abyss_server) -+ ensc_add_example(xmlrpc_loop_server c abyss_server) -+ ensc_add_example(xmlrpc_sample_add_server c abyss_server) -+ ensc_add_example(xmlrpc_server_validatee c abyss_server) -+ -+ if(NOT DEFINED MSVCRT) -+ ensc_add_example(interrupted_server c abyss_server) -+ endif(NOT DEFINED MSVCRT) -+endif(ENABLE_ABYSS_SERVER) -+ -+ensc_set_link_exe_flags(${example_TARGETS}) -diff --git a/examples/config.h b/examples/config.h -new file mode 100644 -index 0000000..31d5f9b ---- /dev/null -+++ b/examples/config.h -@@ -0,0 +1 @@ -+#include "../xmlrpc_config.h" -diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt -new file mode 100644 -index 0000000..093a75d ---- /dev/null -+++ b/examples/cpp/CMakeLists.txt -@@ -0,0 +1,34 @@ -+# -*- cmake -*- -+ -+if(ENABLE_ABYSS_SERVER) -+ set(abyss_serverxx_LIBS xmlrpc_server_abyss++) -+ -+ ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx) -+ ensc_add_example(xmlrpc_loop_server cpp abyss_serverxx) -+ ensc_add_example(xmlrpc_sample_add_server cpp abyss_serverxx) -+ ensc_add_example(callinfo_abyss_server cpp abyss_serverxx) -+endif(ENABLE_ABYSS_SERVER) -+ -+if (ENABLE_CGI_SERVER) -+ set(cgi_serverxx_LIBS xmlrpc_server_cgi++) -+ -+ ensc_add_example(xmlrpc_sample_add_server_cgi cpp cgi_serverxx) -+endif(ENABLE_CGI_SERVER) -+ -+if(MUST_BUILD_CLIENT) -+ set(abyss_clientxx_LIBS xmlrpc_client++) -+ -+ ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx) -+ ensc_add_example(sample_add_client_complex cpp abyss_clientxx) -+ ensc_add_example(asynch_client cpp abyss_clientxx) -+ -+ ensc_add_example(pstream_client cpp abyss_clientxx) -+endif(MUST_BUILD_CLIENT) -+ -+set(pstream_serverxx_LIBS xmlrpc_server_pstream++) -+ensc_add_example(pstream_inetd_server cpp pstream_serverxx) -+ensc_add_example(pstream_serial_server cpp pstream_serverxx) -+ -+ -+ -+ensc_set_link_exe_flags(${example_TARGETS}) -diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt -new file mode 100644 -index 0000000..ebfdba5 ---- /dev/null -+++ b/include/CMakeLists.txt -@@ -0,0 +1,3 @@ -+# -*- cmake -*- -+ -+add_subdirectory(xmlrpc-c) -diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt -new file mode 100644 -index 0000000..b9386b8 ---- /dev/null -+++ b/include/xmlrpc-c/CMakeLists.txt -@@ -0,0 +1,74 @@ -+# -*- cmake -*- -+ -+macro(ensc_install_symlink src dst) -+ install(CODE "EXECUTE_PROCESS(COMMAND ln -s xmlrpc-c/${src} \$ENV{DESTDIR}${includedir}/${dst})") -+endmacro(ensc_install_symlink) -+ -+list(APPEND headers -+ ${CMAKE_CURRENT_BINARY_DIR}/config.h -+ inttypes.h -+ c_util.h -+ util.h -+ base.h -+ json.h -+ abyss.h -+ abyss_unixsock.h -+ abyss_winsock.h -+ server.h -+ server_abyss.h -+ server_w32httpsys.h -+ oldxmlrpc.h) -+ -+list(APPEND compat_links "oldxmlrpc.h xmlrpc.h") -+list(APPEND compat_links "server.h xmlrpc_server.h") -+list(APPEND compat_links "server_abyss.h xmlrpc_abyss.h") -+list(APPEND compat_links "server_w32httpsys.h xmlrpc_server_w32httpsys.h") -+ -+ -+if(ENABLE_CPLUSPLUS) -+ list(APPEND headers -+ oldcppwrapper.hpp -+ girerr.hpp -+ girmem.hpp -+ base.hpp -+ timeout.hpp -+ xml.hpp -+ registry.hpp -+ server_abyss.hpp -+ packetsocket.hpp -+ server_pstream.hpp) -+ -+ list(APPEND compat_links "oldcppwrapper.hpp XmlRpcCpp.h") -+endif(ENABLE_CPLUSPLUS) -+ -+if(MUST_BUILD_CLIENT) -+ list(APPEND headers -+ client.h -+ transport.h -+ client_global.h) -+ -+ list(APPEND compat_links "client.h xmlrpc_client.h") -+ -+ if(ENABLE_CPLUSPLUS) -+ list(APPEND headers -+ client.hpp -+ client_transport.hpp -+ client_simple.hpp) -+ endif(ENABLE_CPLUSPLUS) -+endif(MUST_BUILD_CLIENT) -+ -+if(ENABLE_CGI_SERVER) -+ list(APPEND headers -+ server_cgi.h) -+ -+ list(APPEND compat_links "server_cgi.h xmlrpc_cgi.h") -+endif(ENABLE_CGI_SERVER) -+ -+install(FILES -+ ${headers} -+ DESTINATION ${includedir}/xmlrpc-c) -+ -+foreach (ln ${compat_links}) -+ separate_arguments(ln) -+ ensc_install_symlink(${ln}) -+endforeach(ln) -diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake -new file mode 100644 -index 0000000..48f64be ---- /dev/null -+++ b/include/xmlrpc-c/config.h.cmake -@@ -0,0 +1,34 @@ -+/* --*- c -*-- */ -+#ifndef XMLRPC_C_CONFIG_H_INCLUDED -+#define XMLRPC_C_CONFIG_H_INCLUDED -+ -+/* This file, part of XML-RPC For C/C++, is meant to -+ define characteristics of this particular installation -+ that the other header files need in -+ order to compile correctly when #included in Xmlrpc-c -+ user code. -+ -+ Those header files #include this one. -+ -+ This file was created by a make rule. -+*/ -+#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@ -+#ifdef _WIN32 -+ /* SOCKET is a type defined by . Anyone who -+ uses XMLRPC_SOCKET on a WIN32 system must #include -+ -+ */ -+ #define XMLRPC_SOCKET SOCKET -+ #define XMLRPC_HAVE_TIMEVAL 0 -+ #define XMLRPC_HAVE_TIMESPEC 0 -+ #define XMLRPC_HAVE_PTHREAD 0 -+ #define XMLRPC_HAVE_WINTHREAD 1 -+#else -+ #define XMLRPC_SOCKET int -+ #define XMLRPC_HAVE_TIMEVAL 1 -+ #define XMLRPC_HAVE_TIMESPEC 1 -+ #define XMLRPC_HAVE_PTHREAD 1 -+ #define XMLRPC_HAVE_WINTHREAD 0 -+#endif -+ -+#endif -diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt -new file mode 100644 -index 0000000..7f8f912 ---- /dev/null -+++ b/lib/CMakeLists.txt -@@ -0,0 +1,12 @@ -+## -*- cmake -*- -+ -+add_subdirectory(abyss) -+add_subdirectory(libutil) -+add_subdirectory(util) -+add_subdirectory(curl_transport) -+add_subdirectory(libwww_transport) -+add_subdirectory(wininet_transport) -+ -+if(NOT ENABLE_LIBXML2_BACKEND) -+ add_subdirectory(expat) -+endif(NOT ENABLE_LIBXML2_BACKEND) -diff --git a/lib/abyss/CMakeLists.txt b/lib/abyss/CMakeLists.txt -new file mode 100644 -index 0000000..2358061 ---- /dev/null -+++ b/lib/abyss/CMakeLists.txt -@@ -0,0 +1,3 @@ -+## -*- cmake -*- -+ -+SUBDIRS(src) -diff --git a/lib/abyss/src/CMakeLists.txt b/lib/abyss/src/CMakeLists.txt -new file mode 100644 -index 0000000..b1813bb ---- /dev/null -+++ b/lib/abyss/src/CMakeLists.txt -@@ -0,0 +1,70 @@ -+## -*- cmake -*- -+ -+set(xmlrpc_abyss_SOURCES -+ abyss_info.h -+ channel.c -+ channel.h -+ chanswitch.c -+ chanswitch.h -+ conf.c -+ conn.c -+ conn.h -+ data.c -+ data.h -+ date.c -+ date.h -+ file.c -+ file.h -+ handler.c -+ handler.h -+ http.c -+ http.h -+ init.c -+ response.c -+ server.c -+ server.h -+ session.c -+ session.h -+ socket.c -+ socket.h -+ thread.h -+ token.c -+ token.h -+ trace.c -+ trace.h) -+ -+add_definitions(-D_UNIX) -+ -+if(WIN32) -+ list(APPEND xmlrpc_abyss_SOURCES thread_windows.c) -+else(WIN32) -+ list(APPEND xmlrpc_abyss_SOURCES socket_unix.c socket_unix.h) -+ -+ if(ENABLE_ABYSS_THREADS) -+ list(APPEND xmlrpc_abyss_SOURCES thread_pthread.c) -+ else(ENABLE_ABYSS_THREADS) -+ list(APPEND xmlrpc_abyss_SOURCES thread_fork.c) -+ endif(ENABLE_ABYSS_THREADS) -+endif(WIN32) -+ -+add_library(xmlrpc_abyss SHARED ${xmlrpc_abyss_SOURCES}) -+target_link_libraries(xmlrpc_abyss xmlrpc_util) -+ -+if(ENABLE_ABYSS_THREADS) -+ set_target_properties(xmlrpc_abyss PROPERTIES DEFINE_SYMBOL _THREAD) -+ target_link_libraries(xmlrpc_abyss ${THREAD_LIBS}) -+ ensc_pkgconfig_lib(xmlrpc_abyss "${THREAD_LIBS_PKGCONFIG}") -+endif(ENABLE_ABYSS_THREADS) -+ -+install(TARGETS xmlrpc_abyss -+ RUNTIME DESTINATION ${_bin} -+ LIBRARY DESTINATION ${_lib} -+ ARCHIVE DESTINATION ${_lib}) -+ -+set_target_properties(xmlrpc_abyss -+ PROPERTIES -+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS} -+ VERSION ${XMLRPC_C_LIBVERSION} -+ SOVERSION ${XMLRPC_C_SOVERSION}) -+ -+ensc_pkgconfig(xmlrpc_abyss) -diff --git a/lib/abyss/src/xmlrpc_abyss.pc.cmake b/lib/abyss/src/xmlrpc_abyss.pc.cmake -new file mode 100644 -index 0000000..b0dbcc9 ---- /dev/null -+++ b/lib/abyss/src/xmlrpc_abyss.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_abyss -+Description: XMLRPC Abyss base library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_abyss @xmlrpc_abyss_pkgconfig_libs@ -+Cflags: -diff --git a/lib/curl_transport/CMakeLists.txt b/lib/curl_transport/CMakeLists.txt -new file mode 100644 -index 0000000..4224a13 ---- /dev/null -+++ b/lib/curl_transport/CMakeLists.txt -@@ -0,0 +1,20 @@ -+# -*- cmake -*- -+ -+if(MUST_BUILD_CURL_CLIENT) -+ list(APPEND transport_SOURCES -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c -+ -+ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.h -+ -+ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.h -+ -+ ${CMAKE_CURRENT_SOURCE_DIR}/lock.h -+ -+ ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.h -+ -+ ${CMAKE_CURRENT_SOURCE_DIR}/curlversion.h -+ ) -+endif(MUST_BUILD_CURL_CLIENT) -diff --git a/lib/expat/CMakeLists.txt b/lib/expat/CMakeLists.txt -new file mode 100644 -index 0000000..7397f52 ---- /dev/null -+++ b/lib/expat/CMakeLists.txt -@@ -0,0 +1,9 @@ -+# -*- cmake -*- -+ -+ -+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/xmltok) -+ -+add_subdirectory(gennmtab) -+add_subdirectory(xmlparse) -+add_subdirectory(xmltok) -+add_subdirectory(xmlwf) -diff --git a/lib/expat/gennmtab/CMakeLists.txt b/lib/expat/gennmtab/CMakeLists.txt -new file mode 100644 -index 0000000..48a44da ---- /dev/null -+++ b/lib/expat/gennmtab/CMakeLists.txt -@@ -0,0 +1,3 @@ -+# -*- cmake -*- -+ -+ADD_EXECUTABLE(gennmtab gennmtab.c) -diff --git a/lib/expat/xmlparse/CMakeLists.txt b/lib/expat/xmlparse/CMakeLists.txt -new file mode 100644 -index 0000000..f87008a ---- /dev/null -+++ b/lib/expat/xmlparse/CMakeLists.txt -@@ -0,0 +1,7 @@ -+# -*- cmake -*- -+ -+add_library(xmlrpc_xmlparse STATIC -+ xmlparse.c) -+target_link_libraries(xmlrpc_xmlparse xmlrpc_xmltok) -+ -+ensc_pkgconfig(xmlrpc_xmlparse) -diff --git a/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake -new file mode 100644 -index 0000000..5b2a7e4 ---- /dev/null -+++ b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_xmlparse -+Description: XMLRPC xmlparse library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_xmltok -+Libs: -L${libdir} -lxmlrpc_xmlparse -+Cflags: -diff --git a/lib/expat/xmltok/CMakeLists.txt b/lib/expat/xmltok/CMakeLists.txt -new file mode 100644 -index 0000000..42406fb ---- /dev/null -+++ b/lib/expat/xmltok/CMakeLists.txt -@@ -0,0 +1,23 @@ -+# -*- cmake -*- -+ -+include_directories(${CMAKE_CURRENT_BINARY_DIR}) -+ -+add_definitions(-DXML_BYTE_ORDER=0) -+ -+add_library(xmlrpc_xmltok STATIC -+ xmltok.c xmlrole.c xmltok_impl.c -+ ${CMAKE_CURRENT_BINARY_DIR}/nametab.h) -+ -+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/nametab.h -+ PROPERTIES -+ OBJECT_DEPENDS gennmtab -+ GENERATED true) -+ -+ -+get_target_property(GENNMTAB_EXECUTABLE gennmtab LOCATION) -+add_custom_command( -+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nametab.h -+ COMMAND ${GENNMTAB_EXECUTABLE} >nametab.h || { rm -f nametab.h\; false\; } -+ DEPENDS gennmtab) -+ -+ensc_pkgconfig(xmlrpc_xmltok) -diff --git a/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake -new file mode 100644 -index 0000000..88e7ad8 ---- /dev/null -+++ b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake -@@ -0,0 +1,9 @@ -+prefix=@prefix@ -+libdir=@libdir@ -+ -+Name: xmlrpc_xmltok -+Description: XMLRPC xmltok library -+Version: @XMLRPC_C_VERSION@ -+ -+Libs: -L${libdir} -+Cflags: -diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt -new file mode 100644 -index 0000000..25ba487 ---- /dev/null -+++ b/lib/libutil/CMakeLists.txt -@@ -0,0 +1,26 @@ -+# -*- cmake -*- -+ -+add_library(xmlrpc_util SHARED -+ asprintf.c -+ base64.c -+ error.c -+ make_printable.c -+ memblock.c -+ select.c -+ sleep.c -+ string_number.c -+ time.c -+ utf8.c) -+ -+set_target_properties(xmlrpc_util -+ PROPERTIES -+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS} -+ VERSION ${XMLRPC_C_LIBVERSION} -+ SOVERSION ${XMLRPC_C_SOVERSION}) -+ -+install(TARGETS xmlrpc_util -+ RUNTIME DESTINATION ${_bin} -+ LIBRARY DESTINATION ${_lib} -+ ARCHIVE DESTINATION ${_lib}) -+ -+ensc_pkgconfig(xmlrpc_util) -diff --git a/lib/libutil/xmlrpc_util.pc.cmake b/lib/libutil/xmlrpc_util.pc.cmake -new file mode 100644 -index 0000000..d4e01bf ---- /dev/null -+++ b/lib/libutil/xmlrpc_util.pc.cmake -@@ -0,0 +1,10 @@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_util -+Description: XMLRPC utility library -+Version: @XMLRPC_C_VERSION@ -+ -+Libs: -L${libdir} -lxmlrpc_util -+Cflags: -I${includedir} -diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt -new file mode 100644 -index 0000000..aa52d9e ---- /dev/null -+++ b/lib/libwww_transport/CMakeLists.txt -@@ -0,0 +1,7 @@ -+# -*- cmake -*- -+ -+if(MUST_BUILD_LIBWWW_CLIENT) -+ list(APPEND transport_SOURCES -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.h) -+endif(MUST_BUILD_LIBWWW_CLIENT) -diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt -new file mode 100644 -index 0000000..80696d9 ---- /dev/null -+++ b/lib/util/CMakeLists.txt -@@ -0,0 +1,17 @@ -+## -*- cmake -*- -+ -+set(util_SOURCES -+ casprintf.c -+ cmdline_parser.c -+ cmdline_parser_cpp.cpp -+ getoptx.c -+ getoptx.h -+ stripcaseeq.c -+ string_parser.c -+) -+ -+if(WIN32) -+ list(APPEND util_SOURCES pthreadx_win32.c) -+endif(WIN32) -+ -+add_library(util STATIC ${util_SOURCES}) -diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt -new file mode 100644 -index 0000000..17535ab ---- /dev/null -+++ b/lib/wininet_transport/CMakeLists.txt -@@ -0,0 +1,7 @@ -+# -*- cmake -*- -+ -+if(MUST_BUILD_WININET_CLIENT) -+ list(APPEND transport_SOURCES -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c -+ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h) -+endif(MUST_BUILD_WININET_CLIENT) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -new file mode 100644 -index 0000000..f51e15b ---- /dev/null -+++ b/src/CMakeLists.txt -@@ -0,0 +1,121 @@ -+# -*- cmake -*- -+ -+if(ENABLE_LIBXML2_BACKEND) -+ set(xmlrpc_xml_parser xmlrpc_libxml2.c) -+ set(libxml_INCLUDES ${LIBXML2_CFLAGS}) -+ set(libxml_LIBS ${LIBXML2_LDFLAGS}) -+ set(xmlrpc_pkgconfig_req ${libxml_pkgconfig}) -+else(ENABLE_LIBXML2_BACKEND) -+ set(xmlrpc_xml_parser xmlrpc_expat.c) -+ set(libxml_INCLUDES -I${xmlrpc-c_SOURCE_DIR}/lib/expat/xmlparse) -+ set(libxml_LIBS xmlrpc_xmlparse) -+ set(xmlrpc_pkgconfig_req xmlrpc_xmlparse) -+endif(ENABLE_LIBXML2_BACKEND) -+ -+if(MUST_BUILD_WININET_CLIENT) -+ set(client_wininet_CFLAGS "") -+ set(client_wininet_LIBS "${WININET_LDADD}" pthread) -+ list(APPEND transport_SOURCES -+ ${wininet_srcdir}/xmlrpc_wininet_transport.c ${wininet_srcdir}/xmlrpc_wininet_transport.h) -+endif(MUST_BUILD_WININET_CLIENT) -+ -+if(MUST_BUILD_LIBWWW_CLIENT) -+ set(client_libwww_CFLAGS "${LIBWWW_CFLAGS}") -+ set(client_libwww_LIBS "${LIBWWW_LIBS}") -+ list(APPEND transport_SOURCES ${libwww_srcdir}/xmlrpc_libwww_transport.c ${libwww_srcdir}/xmlrpc_libwww_transport.h) -+endif(MUST_BUILD_LIBWWW_CLIENT) -+ -+if(MUST_BUILD_CURL_CLIENT) -+ set(client_curl_CFLAGS ${CURL_CFLAGS}) -+ set(client_curl_LIBS ${CURL_LDFLAGS} pthread) -+ set(xmlrpc_client_pkgconfig_req libcurl) -+ list(APPEND transport_SOURCES -+ ${curl_srcdir}/xmlrpc_curl_transport.c -+ ${curl_srcdir}/curltransaction.c -+ ${curl_srcdir}/curltransaction.h -+ ${curl_srcdir}/curlmulti.c -+ ${curl_srcdir}/curlmulti.h -+ ${curl_srcdir}/lock.h -+ ${curl_srcdir}/lock_pthread.c -+ ${curl_srcdir}/lock_pthread.h -+ ${curl_srcdir}/curlversion.h -+ ) -+endif(MUST_BUILD_CURL_CLIENT) -+ -+set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}") -+set(client_LIBS ${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS}) -+ -+ -+add_subdirectory(cpp) -+ -+ -+ -+### libxmlrpc.so -+add_library(xmlrpc SHARED -+ double.c parse_datetime.c parse_value.c resource.c trace.c version.c -+ json.c -+ ${xmlrpc_xml_parser} -+ xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c -+ xmlrpc_array.c xmlrpc_struct.c -+ xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c -+ xmlrpc_authcookie.c) -+ -+set_target_properties(xmlrpc -+ PROPERTIES -+ COMPILE_FLAGS ${libxml_INCLUDES}) -+ -+ensc_pkgconfig(xmlrpc) -+target_link_libraries(xmlrpc ${libxml_LIBS} xmlrpc_util) -+list(APPEND lib_TARGETS xmlrpc) -+ -+### libxmlrpc_client.so -+add_library(xmlrpc_client SHARED -+ xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES}) -+ -+target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS}) -+set_target_properties(xmlrpc_client -+ PROPERTIES -+ COMPILE_FLAGS "${client_CFLAGS}") -+list(APPEND lib_TARGETS xmlrpc_client) -+ensc_pkgconfig(xmlrpc_client) -+ -+### libxmlrpc_server.so -+add_library(xmlrpc_server SHARED -+ registry.c method.c system_method.c) -+target_link_libraries(xmlrpc_server xmlrpc) -+list(APPEND lib_TARGETS xmlrpc_server) -+ensc_pkgconfig(xmlrpc_server) -+ -+ -+### libxmlrpc_server_abyss.so -+if(ENABLE_ABYSS_SERVER) -+ add_library(xmlrpc_server_abyss SHARED -+ xmlrpc_server_abyss.c abyss_handler.c) -+ target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server) -+ list(APPEND lib_TARGETS xmlrpc_server_abyss) -+ ensc_pkgconfig(xmlrpc_server_abyss) -+endif(ENABLE_ABYSS_SERVER) -+ -+ -+ -+### libxmlrpc_server_cgi.so -+if(ENABLE_CGI_SERVER) -+ add_library(xmlrpc_server_cgi SHARED -+ xmlrpc_server_cgi) -+ target_link_libraries(xmlrpc_server_cgi xmlrpc_server) -+ list(APPEND lib_TARGETS xmlrpc_server_cgi) -+ ensc_pkgconfig(xmlrpc_server_cgi) -+endif(ENABLE_CGI_SERVER) -+ -+install(TARGETS ${lib_TARGETS} -+ RUNTIME DESTINATION ${_bin} -+ LIBRARY DESTINATION ${_lib}) -+ -+set_target_properties(${lib_TARGETS} -+ PROPERTIES -+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS} -+ VERSION ${XMLRPC_C_LIBVERSION} -+ SOVERSION ${XMLRPC_C_SOVERSION}) -+ -+ -+enable_testing() -diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt -new file mode 100644 -index 0000000..3171156 ---- /dev/null -+++ b/src/cpp/CMakeLists.txt -@@ -0,0 +1,70 @@ -+# -*- cmake -*- -+ -+####### libxmlrpc++.so -+add_library(xmlrpc++ SHARED -+ base64.cpp env_wrap.cpp fault.cpp girerr.cpp girmem.cpp -+ outcome.cpp param_list.cpp value.cpp xml.cpp) -+target_link_libraries(xmlrpc++ xmlrpc pthread) -+list(APPEND lib_TARGETS xmlrpc++) -+ensc_pkgconfig(xmlrpc++) -+ -+####### libxmlrpc_cpp.so -+add_library(xmlrpc_cpp SHARED XmlRpcCpp) -+target_link_libraries(xmlrpc_cpp xmlrpc xmlrpc_server xmlrpc_client) -+list(APPEND lib_TARGETS xmlrpc_cpp) -+ensc_pkgconfig(xmlrpc_cpp) -+ -+####### libxmlrpc_server++.so -+add_library(xmlrpc_server++ SHARED registry.cpp) -+target_link_libraries(xmlrpc_server++ xmlrpc++ xmlrpc_server) -+list(APPEND lib_TARGETS xmlrpc_server++) -+ensc_pkgconfig(xmlrpc_server++) -+ -+####### libxmlrpc_server_abyss++.so -+if(ENABLE_ABYSS_SERVER) -+ add_library(xmlrpc_server_abyss++ SHARED server_abyss.cpp) -+ target_link_libraries(xmlrpc_server_abyss++ xmlrpc_server++ xmlrpc_server_abyss) -+ list(APPEND lib_TARGETS xmlrpc_server_abyss++) -+ ensc_pkgconfig(xmlrpc_server_abyss++) -+endif(ENABLE_ABYSS_SERVER) -+ -+####### libxmlrpc_server_cgi++.so -+if(ENABLE_CGI_SERVER) -+ add_library(xmlrpc_server_cgi++ SHARED server_cgi.cpp) -+ target_link_libraries(xmlrpc_server_cgi++ xmlrpc_server++) -+ list(APPEND lib_TARGETS xmlrpc_server_cgi++) -+ ensc_pkgconfig(xmlrpc_server_cgi++) -+endif(ENABLE_CGI_SERVER) -+ -+####### libxmlrpc_server_pstream++.so -+add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp server_pstream_conn) -+target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket) -+list(APPEND lib_TARGETS xmlrpc_server_pstream++) -+ensc_pkgconfig(xmlrpc_server_pstream++) -+ -+####### libxmlrpc_packetsocket.so -+add_library(xmlrpc_packetsocket SHARED packetsocket.cpp) -+target_link_libraries(xmlrpc_packetsocket xmlrpc++) -+list(APPEND lib_TARGETS xmlrpc_packetsocket) -+ensc_pkgconfig(xmlrpc_packetsocket) -+ -+####### libxmlrpc_client++.so -+add_library(xmlrpc_client++ SHARED -+ client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp pstream.cpp) -+set_target_properties(xmlrpc_client++ -+ PROPERTIES -+ COMPILE_FLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir}") -+target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client xmlrpc_packetsocket) -+list(APPEND lib_TARGETS xmlrpc_client++) -+ensc_pkgconfig(xmlrpc_client++) -+ -+ -+install(TARGETS ${lib_TARGETS} -+ RUNTIME DESTINATION ${_bin} -+ LIBRARY DESTINATION ${_lib}) -+ -+set_target_properties(${lib_TARGETS} -+ PROPERTIES -+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS} -+ VERSION ${XMLRPC_CXX_LIBVERSION} -+ SOVERSION ${XMLRPC_CXX_SOVERSION}) -diff --git a/src/cpp/test/CMakeLists.txt b/src/cpp/test/CMakeLists.txt -new file mode 100644 -index 0000000..dffd36c ---- /dev/null -+++ b/src/cpp/test/CMakeLists.txt -@@ -0,0 +1,18 @@ -+# -*- cmake -*- -+ -+set(test_SOURCES -+ test.cpp base64.cpp registry.cpp server_abyss.cpp -+ server_pstream.cpp tools.cpp value.cpp xml.cpp ) -+ -+if(MUST_BUILD_CLIENT) -+ list(APPEND test_SOURCES testclient.cpp) -+ list(APPEND test_LIBS xmlrpc_client++) -+else(MUST_BUILD_CLIENT) -+ list(APPEND test_SOURCES testclient_dummy.c) -+endif(MUST_BUILD_CLIENT) -+ -+add_executable(src-test ${test_SOURCES}) -+target_link_libraries(src-test xmlrpc_server_abyss++ util ${test_LIBS}) -+ -+enable_testing() -+add_test(runtests src-test) -diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake -new file mode 100644 -index 0000000..e99d81e ---- /dev/null -+++ b/src/cpp/xmlrpc++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc++ -+Description: XMLRPC C++ Base library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc++ -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_client++.pc.cmake b/src/cpp/xmlrpc_client++.pc.cmake -new file mode 100644 -index 0000000..fe1f835 ---- /dev/null -+++ b/src/cpp/xmlrpc_client++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_client++ -+Description: XMLRPC C++ Client library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc++ xmlrpc_client xmlrpc_packetsocket xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_client++ -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_cpp.pc.cmake b/src/cpp/xmlrpc_cpp.pc.cmake -new file mode 100644 -index 0000000..9f94252 ---- /dev/null -+++ b/src/cpp/xmlrpc_cpp.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_cpp -+Description: XMLRPC CPP library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc xmlrpc_server xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_cpp -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_packetsocket.pc.cmake b/src/cpp/xmlrpc_packetsocket.pc.cmake -new file mode 100644 -index 0000000..e168da3 ---- /dev/null -+++ b/src/cpp/xmlrpc_packetsocket.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_packetsocket -+Description: XMLRPC C++ packsetsocket library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc++ -+Libs: -L${libdir} -lxmlrpc_packetsocket -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_server++.pc.cmake b/src/cpp/xmlrpc_server++.pc.cmake -new file mode 100644 -index 0000000..5080b63 ---- /dev/null -+++ b/src/cpp/xmlrpc_server++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server++ -+Description: XMLRPC C++ Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc++ xmlrpc_server xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_server++ -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_server_abyss++.pc.cmake b/src/cpp/xmlrpc_server_abyss++.pc.cmake -new file mode 100644 -index 0000000..f1d2198 ---- /dev/null -+++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server_abyss++ -+Description: XMLRPC C++ Abyss-Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_server_abyss++ -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_server_cgi++.pc.cmake b/src/cpp/xmlrpc_server_cgi++.pc.cmake -new file mode 100644 -index 0000000..9021564 ---- /dev/null -+++ b/src/cpp/xmlrpc_server_cgi++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server_cgi++ -+Description: XMLRPC C++ CGI-Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_server++ xmlrpc++ xmlrpc -+Libs: -L${libdir} -lxmlrpc_server_cgi++ -+Cflags: -I${includedir} -diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake -new file mode 100644 -index 0000000..9b4819f ---- /dev/null -+++ b/src/cpp/xmlrpc_server_pstream++.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server_pstream++ -+Description: XMLRPC C++ pstream-Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_server++ xmlrpc_packetsocket xmlrpc++ -+Libs: -L${libdir} -lxmlrpc_server_pstream++ -+Cflags: -I${includedir} -diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake -new file mode 100644 -index 0000000..7c098b8 ---- /dev/null -+++ b/src/xmlrpc.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc -+Description: XMLRPC base library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: @xmlrpc_pkgconfig_req@ xmlrpc_util -+Libs: -L${libdir} -lxmlrpc @xmlrpc_pkgconfig_libs@ -+Cflags: -I${includedir} -diff --git a/src/xmlrpc_client.pc.cmake b/src/xmlrpc_client.pc.cmake -new file mode 100644 -index 0000000..61543d4 ---- /dev/null -+++ b/src/xmlrpc_client.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_client -+Description: XMLRPC client library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_client @client_libwww_LIBS@ @client_wininet_LIBS@ -+Cflags: -I${includedir} -diff --git a/src/xmlrpc_server.pc.cmake b/src/xmlrpc_server.pc.cmake -new file mode 100644 -index 0000000..cade53d ---- /dev/null -+++ b/src/xmlrpc_server.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server -+Description: XMLRPC Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_server -+Cflags: -I${includedir} -diff --git a/src/xmlrpc_server_abyss.pc.cmake b/src/xmlrpc_server_abyss.pc.cmake -new file mode 100644 -index 0000000..198c780 ---- /dev/null -+++ b/src/xmlrpc_server_abyss.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server_abyss -+Description: XMLRPC Server Abyss library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_server xmlrpc_abyss xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_server_abyss -+Cflags: -I${includedir} -diff --git a/src/xmlrpc_server_cgi.pc.cmake b/src/xmlrpc_server_cgi.pc.cmake -new file mode 100644 -index 0000000..748b550 ---- /dev/null -+++ b/src/xmlrpc_server_cgi.pc.cmake -@@ -0,0 +1,12 @@ -+bindir=@bindir@ -+prefix=@prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: xmlrpc_server_cgi -+Description: XMLRPC CGI-Server library -+Version: @XMLRPC_C_VERSION@ -+ -+Requires.private: xmlrpc_server xmlrpc xmlrpc_util -+Libs: -L${libdir} -lxmlrpc_server_cgi -+Cflags: -I${includedir} -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -new file mode 100644 -index 0000000..e712382 ---- /dev/null -+++ b/test/CMakeLists.txt -@@ -0,0 +1,41 @@ -+# -*- cmake -*- -+ -+set(test_SOURCES -+ abyss.c -+ abyss.h -+ test.c -+ cgi.c -+ method_registry.c -+ parse_xml.c -+ serialize.c -+ serialize_value.c -+ server_abyss.c -+ testtool.c -+ testtool.h -+ value.c -+ value_datetime.c -+ xml_data.c) -+ -+if(MUST_BUILD_CLIENT) -+ list(APPEND test_SOURCES client.c) -+ list(APPEND test_LIBS xmlrpc_client) -+else(MUST_BUILD_CLIENT) -+ list(APPEND test_SOURCES client_dummy.c) -+endif(MUST_BUILD_CLIENT) -+ -+ -+add_executable(src-test ${test_SOURCES}) -+target_link_libraries(src-test xmlrpc_server_abyss util ${test_LIBS}) -+ -+add_executable(src-cgitest1 cgitest1.c testtool.c testtool.h) -+target_link_libraries(src-cgitest1 xmlrpc_server_cgi) -+ -+add_custom_command(TARGET src-test -+ POST_BUILD -+ COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/data -+ COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}) -+ -+enable_testing() -+add_test(runtests src-test) -+ -+add_subdirectory(cpp) -diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt -new file mode 100644 -index 0000000..15a7c3a ---- /dev/null -+++ b/test/cpp/CMakeLists.txt -@@ -0,0 +1,34 @@ -+# -*- cmake -*- -+ -+set(testcpp_SOURCES -+ test.cpp -+ base64.cpp -+ registry.cpp -+ server_abyss.cpp -+ server_pstream.cpp -+ tools.cpp -+ value.cpp -+ xml.cpp) -+ -+if(MUST_BUILD_CLIENT) -+ list(APPEND testcpp_SOURCES testclient.cpp) -+ list(APPEND testcpp_LIBS xmlrpc_client++) -+else(MUST_BUILD_CLIENT) -+ list(APPEND testcpp_SOURCES testclient_dummy.c) -+endif(MUST_BUILD_CLIENT) -+ -+if(DEFINED MSVCRT) -+ list(APPEND testcpp_SOURCES ${CMAKE_SOURCE_DIR}/Windows/socketpair.cpp) -+endif(DEFINED MSVCRT) -+ -+add_executable(src-testcpp ${testcpp_SOURCES}) -+target_link_libraries(src-testcpp -+ xmlrpc++ -+ xmlrpc_server++ -+ xmlrpc_server_abyss++ -+ xmlrpc_server_pstream++ -+ xmlrpc_cpp -+ util ${testcpp_LIBS}) -+ -+enable_testing() -+add_test(runtests src-testcpp) -diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt -new file mode 100644 -index 0000000..cd2a6d7 ---- /dev/null -+++ b/tools/CMakeLists.txt -@@ -0,0 +1,22 @@ -+# -*- cmake -*- -+ -+add_subdirectory(lib) -+add_subdirectory(binmode-rpc-kit) -+add_subdirectory(turbocharger) -+add_subdirectory(xml) -+ -+if (MUST_BUILD_CLIENT) -+ add_subdirectory(xmlrpc) -+ add_subdirectory(xmlrpc_transport) -+ -+ -+ if (ENABLE_CPLUSPLUS) -+ add_subdirectory(xml-rpc-api2cpp) -+ add_subdirectory(xml-rpc-api2txt) -+ add_subdirectory(xmlrpc_cpp_proxy) -+ -+ if (BUILD_XMLRPC_PSTREAM AND ENABLE_CGI_SERVER) -+ add_subdirectory(xmlrpc_pstream) -+ endif() -+ endif() -+endif() -diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt -new file mode 100644 -index 0000000..342423d ---- /dev/null -+++ b/tools/binmode-rpc-kit/CMakeLists.txt -@@ -0,0 +1 @@ -+# -*- cmake -*- -diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt -new file mode 100644 -index 0000000..342423d ---- /dev/null -+++ b/tools/lib/CMakeLists.txt -@@ -0,0 +1 @@ -+# -*- cmake -*- -diff --git a/tools/turbocharger/CMakeLists.txt b/tools/turbocharger/CMakeLists.txt -new file mode 100644 -index 0000000..342423d ---- /dev/null -+++ b/tools/turbocharger/CMakeLists.txt -@@ -0,0 +1 @@ -+# -*- cmake -*- -diff --git a/tools/xml-rpc-api2cpp/CMakeLists.txt b/tools/xml-rpc-api2cpp/CMakeLists.txt -new file mode 100644 -index 0000000..1e9134a ---- /dev/null -+++ b/tools/xml-rpc-api2cpp/CMakeLists.txt -@@ -0,0 +1,15 @@ -+# -*- cmake -*- -+ -+add_executable(xml-rpc-api2cpp -+ xml-rpc-api2cpp.cpp -+ DataType.cpp -+ XmlRpcFunction.cpp -+ XmlRpcClass.cpp -+ SystemProxy.cpp) -+target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client) -+ -+install(TARGETS xml-rpc-api2cpp -+ RUNTIME DESTINATION bin) -+ -+install(FILES xml-rpc-api2cpp.1 -+ DESTINATION ${mandir}/man1) -diff --git a/tools/xml-rpc-api2txt/CMakeLists.txt b/tools/xml-rpc-api2txt/CMakeLists.txt -new file mode 100644 -index 0000000..5b01824 ---- /dev/null -+++ b/tools/xml-rpc-api2txt/CMakeLists.txt -@@ -0,0 +1,7 @@ -+# -*- cmake -*- -+ -+install(PROGRAMS xml-rpc-api2txt -+ DESTINATION ${bindir}) -+ -+install(FILES xml-rpc-api2txt.1 -+ DESTINATION ${mandir}/man1) -diff --git a/tools/xml/CMakeLists.txt b/tools/xml/CMakeLists.txt -new file mode 100644 -index 0000000..0bab80c ---- /dev/null -+++ b/tools/xml/CMakeLists.txt -@@ -0,0 +1,16 @@ -+# -*- cmake -*- -+ -+add_executable(xmlrpc_parsecall -+ xmlrpc_parsecall.c -+ ../lib/dumpvalue.c) -+ -+target_link_libraries(xmlrpc_parsecall -+ xmlrpc -+ util) -+ -+install(TARGETS xmlrpc_parsecall -+ DESTINATION ${_bin}) -+ -+include_directories(../lib/include) -+ -+ensc_set_link_exe_flags(xmlrpc_parsecall) -diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt -new file mode 100644 -index 0000000..da01ec3 ---- /dev/null -+++ b/tools/xmlrpc/CMakeLists.txt -@@ -0,0 +1,17 @@ -+# -*- cmake -*- -+ -+#set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ../lib/include) -+ -+include_directories(../lib/include) -+add_executable(tool-xmlrpc -+ xmlrpc.c -+ ../lib/dumpvalue.c) -+target_link_libraries(tool-xmlrpc xmlrpc_client util) -+ -+set_target_properties(tool-xmlrpc -+ PROPERTIES OUTPUT_NAME xmlrpc) -+ -+install(TARGETS tool-xmlrpc -+ DESTINATION ${_bin}) -+ -+ensc_set_link_exe_flags(tool-xmlrpc) -diff --git a/tools/xmlrpc/config.h b/tools/xmlrpc/config.h -new file mode 100644 -index 0000000..7409aed ---- /dev/null -+++ b/tools/xmlrpc/config.h -@@ -0,0 +1 @@ -+#include -diff --git a/tools/xmlrpc_cpp_proxy/CMakeLists.txt b/tools/xmlrpc_cpp_proxy/CMakeLists.txt -new file mode 100644 -index 0000000..4166023 ---- /dev/null -+++ b/tools/xmlrpc_cpp_proxy/CMakeLists.txt -@@ -0,0 +1,17 @@ -+# -*- cmake -*- -+ -+add_executable(xmlrpc_cpp_proxy -+ proxyClass.cpp -+ proxyClass.hpp -+ systemProxy.cpp -+ systemProxy.hpp -+ xmlrpcMethod.cpp -+ xmlrpcMethod.hpp -+ xmlrpcType.cpp -+ xmlrpcType.hpp -+ xmlrpc_cpp_proxy.cpp -+) -+target_link_libraries(xmlrpc_cpp_proxy xmlrpc_client++) -+ -+install(TARGETS xmlrpc_cpp_proxy -+ RUNTIME DESTINATION bin) -diff --git a/tools/xmlrpc_pstream/CMakeLists.txt b/tools/xmlrpc_pstream/CMakeLists.txt -new file mode 100644 -index 0000000..b277bc8 ---- /dev/null -+++ b/tools/xmlrpc_pstream/CMakeLists.txt -@@ -0,0 +1,16 @@ -+# -*- cmake -*- -+ -+add_executable(xmlrpc_pstream -+ xmlrpc_pstream.cpp -+ ../lib/dumpvalue.c) -+ -+target_link_libraries(xmlrpc_pstream -+ ${READLINE} -+ ${NCURSES_LIBRARIES} -+ xmlrpc_client++ -+ util) -+ -+include_directories(../lib/include) -+ -+install(TARGETS xmlrpc_pstream -+ RUNTIME DESTINATION bin) -diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt -new file mode 100644 -index 0000000..b73d7c0 ---- /dev/null -+++ b/tools/xmlrpc_transport/CMakeLists.txt -@@ -0,0 +1,9 @@ -+# -*- cmake -*- -+ -+add_executable(xmlrpc_transport xmlrpc_transport.c) -+target_link_libraries(xmlrpc_transport xmlrpc_client util) -+ -+install(TARGETS xmlrpc_transport -+ DESTINATION ${_bin}) -+ -+ensc_set_link_exe_flags(xmlrpc_transport) -diff --git a/tools/xmlrpc_transport/config.h b/tools/xmlrpc_transport/config.h -new file mode 100644 -index 0000000..7409aed ---- /dev/null -+++ b/tools/xmlrpc_transport/config.h -@@ -0,0 +1 @@ -+#include -diff --git a/transport_config.h.cmake b/transport_config.h.cmake -new file mode 100644 -index 0000000..1ec3cf6 ---- /dev/null -+++ b/transport_config.h.cmake -@@ -0,0 +1,16 @@ -+/* -*- c -*- */ -+#define MUST_BUILD_WININET_CLIENT @_MUST_BUILD_WININET_CLIENT@ -+#define MUST_BUILD_LIBWWW_CLIENT @_MUST_BUILD_LIBWWW_CLIENT@ -+#define MUST_BUILD_CURL_CLIENT @_MUST_BUILD_CURL_CLIENT@ -+ -+static char const * const XMLRPC_DEFAULT_TRANSPORT = -+#if MUST_BUILD_LIBWWW_CLIENT -+ "libwww" -+#elif MUST_BUILD_CURL_CLIENT -+ "curl" -+#elif MUST_BUILD_WININET_CLIENT -+ "wininet" -+#else -+# error "no client XML transport configured" -+#endif -+ ; -diff --git a/version.h.cmake b/version.h.cmake -new file mode 100644 -index 0000000..0c964a3 ---- /dev/null -+++ b/version.h.cmake -@@ -0,0 +1,5 @@ -+/* This file was generated by a make rule */ -+#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@" -+#define XMLRPC_VERSION_MAJOR @XMLRPC_C_VERSION_MAJOR_NUM@ -+#define XMLRPC_VERSION_MINOR @XMLRPC_C_VERSION_MINOR_NUM@ -+#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@ -diff --git a/xmlrpc-c-config b/xmlrpc-c-config -new file mode 100755 -index 0000000..50577fd ---- /dev/null -+++ b/xmlrpc-c-config -@@ -0,0 +1,105 @@ -+#! /bin/sh -+ -+comp= -+ -+need_cxx= -+need_client= -+need_server= -+need_abyss= -+need_pstream= -+need_packetsocket= -+need_cgi= -+ -+show_help() { -+ cat < ...