From 37fd546062fa0cf4e7bf3dd1c2f6fd195c2ac80ba10d37e8b14d3cfb59f6a73f Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 12 Jun 2007 10:02:34 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/xmlrpc-c?expand=0&rev=21 --- 0001-make-cmake-transition.txt | 1458 ++++++++++++++++++++++++++++++++ 1 file changed, 1458 insertions(+) create mode 100644 0001-make-cmake-transition.txt diff --git a/0001-make-cmake-transition.txt b/0001-make-cmake-transition.txt new file mode 100644 index 0000000..8879ae3 --- /dev/null +++ b/0001-make-cmake-transition.txt @@ -0,0 +1,1458 @@ +From 0dd5200ebaf39dc37b7fc06e6b793c307b2d648b Mon Sep 17 00:00:00 2001 +From: Enrico Scholz +Date: Sun, 1 Apr 2007 14:30:58 +0200 +Subject: [PATCH] make -> cmake transition + +--- + CMakeLists.txt | 236 +++++++++++++++++++++++++++ + cmake/try-attr.cc | 3 + + cmake/va-list-is-array.c | 9 + + examples/CMakeLists.txt | 51 ++++++ + examples/config.h | 1 + + examples/cpp/CMakeLists.txt | 20 +++ + include/CMakeLists.txt | 3 + + include/xmlrpc-c/CMakeLists.txt | 52 ++++++ + include/xmlrpc-c/config.h.cmake | 8 + + lib/CMakeLists.txt | 12 ++ + lib/abyss/CMakeLists.txt | 3 + + lib/abyss/src/CMakeLists.txt | 57 +++++++ + lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++ + lib/curl_transport/CMakeLists.txt | 7 + + 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 | 20 +++ + lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 + + lib/libutil/CMakeLists.txt | 22 +++ + lib/libutil/xmlrpc_util.pc.cmake | 10 + + lib/libwww_transport/CMakeLists.txt | 4 + + lib/util/CMakeLists.txt | 13 ++ + lib/wininet_transport/CMakeLists.txt | 4 + + src/CMakeLists.txt | 106 ++++++++++++ + src/cpp/CMakeLists.txt | 48 ++++++ + src/cpp/xmlrpc++.pc.cmake | 12 ++ + src/cpp/xmlrpc_client++.pc.cmake | 12 ++ + src/cpp/xmlrpc_cpp.pc.cmake | 12 ++ + src/cpp/xmlrpc_server++.pc.cmake | 12 ++ + src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 ++ + src/test/CMakeLists.txt | 27 +++ + 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 ++ + tools/CMakeLists.txt | 9 + + tools/binmode-rpc-kit/CMakeLists.txt | 2 + + tools/turbocharger/CMakeLists.txt | 1 + + tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++ + tools/xmlrpc/CMakeLists.txt | 15 ++ + tools/xmlrpc/config.h | 1 + + tools/xmlrpc_transport/CMakeLists.txt | 9 + + tools/xmlrpc_transport/config.h | 1 + + transport_config.h.cmake | 16 ++ + version.h.cmake | 2 + + xmlrpc-c-config | 67 ++++++++ + xmlrpc_config.h.cmake | 21 +++ + 50 files changed, 1047 insertions(+), 0 deletions(-) + 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/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_server++.pc.cmake + create mode 100644 src/cpp/xmlrpc_server_abyss++.pc.cmake + create mode 100644 src/test/CMakeLists.txt + 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 tools/CMakeLists.txt + create mode 100644 tools/binmode-rpc-kit/CMakeLists.txt + create mode 100644 tools/turbocharger/CMakeLists.txt + create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt + create mode 100644 tools/xmlrpc/CMakeLists.txt + create mode 100644 tools/xmlrpc/config.h + 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..e4505f7 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,236 @@ ++## -*- cmake -*- ++project(xmlrpc-c) ++include(UsePkgConfig) ++include(CheckIncludeFile) ++include(CheckFunctionExists) ++ ++set(XMLRPC_C_VERSION "1.06.11" CACHE STRING "Version of xmlrpc-c") ++set(XMLRPC_C_LIBVERSION "3.6.11") ++set(XMLRPC_C_SOVERSION "3") ++ ++ ++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) ++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) ++ ++########### ++pkgconfig(libcurl CURL_INCLUDE_DIR CURL_LINK_DIR CURL_LINK_FLAGS CURL_CFLAGS) ++if(DEFINED MUST_BUILD_CURL_CLIENT) ++ set(tmp ${MUST_BUILD_CURL_CLIENT}) ++else(DEFINED MUST_BUILD_CURL_CLIENT) ++ if(CURL_LINK_FLAGS) ++ set(tmp 1) ++ else(CURL_LINK_FLAGS) ++ set(tmp 0) ++ endif(CURL_LINK_FLAGS) ++endif(DEFINED MUST_BUILD_CURL_CLIENT) ++ ++if(tmp) ++ set(MUST_BUILD_CLIENT 1) ++ STRING(REGEX REPLACE "\n" "" CURL_CFLAGS ${CURL_CFLAGS}) # HACK!! ++ message(STATUS "Using libcurl transport ${CURL_CFLAGS}") ++endif(tmp) ++ensc_set_bool(MUST_BUILD_CURL_CLIENT ${tmp} "Set iff Curl client transport shall be built") ++set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport) ++ ++########### ++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_THREADS 1 CACHE BOOL "Use pthread") ++ ++if(ENABLE_LIBXML2_BACKEND) ++ foreach(tmp libxml-2.0 libxml2 libxml) ++ if (NOT DEFINED libxml_pkgconfig) ++ pkgconfig(${tmp} LIBXML2_INCLUDE_DIR LIBXML2_LINK_DIR LIBXML2_LINK_FLAGS LIBXML2_CFLAGS) ++ if(LIBXML2_LINK_FLAGS) ++ set(libxml_pkgconfig ${tmp}) ++ endif(LIBXML2_LINK_FLAGS) ++ endif(NOT DEFINED libxml_pkgconfig) ++ endforeach(tmp) ++endif(ENABLE_LIBXML2_BACKEND) ++ ++ ++#### 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 "\\") ++else(WIN32) ++ set(DIRECTORY_SEPARATOR "/") ++endif(WIN32) ++ ++check_include_file(sys/filio.h HAVE_SYS_FILIO_H) ++check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H) ++check_function_exists(setenv HAVE_SETENV) ++ ++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(lib) ++add_subdirectory(Windows) ++add_subdirectory(conf) ++add_subdirectory(doc) ++add_subdirectory(examples) ++add_subdirectory(include) ++add_subdirectory(src) ++add_subdirectory(tools) +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..9f18b0d +--- /dev/null ++++ b/examples/CMakeLists.txt +@@ -0,0 +1,51 @@ ++# -*- 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) ++ ++ ++ ++if(MUST_BUILD_CLIENT) ++ set(client_LIBS xmlrpc_client) ++ ++ ensc_add_example(auth_client c client) ++ ensc_add_example(query-meerkat 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(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(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) ++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..9fbea7e +--- /dev/null ++++ b/examples/cpp/CMakeLists.txt +@@ -0,0 +1,20 @@ ++# -*- cmake -*- ++ ++if(ENABLE_ABYSS_SERVER) ++ set(abyss_serverxx_LIBS xmlrpc_server_abyss++) ++ ++ ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx) ++endif(ENABLE_ABYSS_SERVER) ++ ++if(MUST_BUILD_CLIENT) ++ set(abyss_clientxx_LIBS xmlrpc_client++) ++ set(abyss_clientxx_legacy_LIBS xmlrpc_cpp) ++ ++ ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx) ++ ensc_add_example(sample_add_client_complex cpp abyss_clientxx) ++ ++ ensc_add_example(meerkat-app-list cpp abyss_clientxx_legacy) ++endif(MUST_BUILD_CLIENT) ++ ++ ++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..b92ccf4 +--- /dev/null ++++ b/include/xmlrpc-c/CMakeLists.txt +@@ -0,0 +1,52 @@ ++# -*- 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 ++ util.h base.h abyss.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_server_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) ++ ++ 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..7b95a1d +--- /dev/null ++++ b/include/xmlrpc-c/config.h.cmake +@@ -0,0 +1,8 @@ ++/* 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 a Xmlrpc-c user code. ++ ++ Those header files #include this one. ++*/ ++#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@ +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..cff8299 +--- /dev/null ++++ b/lib/abyss/src/CMakeLists.txt +@@ -0,0 +1,57 @@ ++## -*- cmake -*- ++ ++set(xmlrpc_abyss_SOURCES ++ abyss_info.h ++ conf.c ++ conn.c ++ conn.h ++ data.c ++ data.h ++ date.c ++ date.h ++ file.c ++ file.h ++ http.c ++ http.h ++ response.c ++ server.c ++ server.h ++ session.c ++ session.h ++ socket.c ++ socket.h ++ socket_unix.c ++ socket_unix.h ++ thread.h ++ token.c ++ token.h ++ trace.c ++ trace.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) ++ ++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 pthread) ++ ensc_pkgconfig_lib(xmlrpc_abyss "-lpthread") ++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..fae7af3 +--- /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..3814f08 +--- /dev/null ++++ b/lib/curl_transport/CMakeLists.txt +@@ -0,0 +1,7 @@ ++# -*- cmake -*- ++ ++if(MUST_BUILD_CURL_CLIENT) ++ list(APPEND transport_SOURCES ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c ++ ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.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..c3247ad +--- /dev/null ++++ b/lib/expat/xmltok/CMakeLists.txt +@@ -0,0 +1,20 @@ ++# -*- cmake -*- ++ ++include_directories(${CMAKE_CURRENT_BINARY_DIR}) ++ ++add_library(xmlrpc_xmltok STATIC ++ xmltok.c xmlrole.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..5e5d382 +--- /dev/null ++++ b/lib/libutil/CMakeLists.txt +@@ -0,0 +1,22 @@ ++# -*- cmake -*- ++ ++add_library(xmlrpc_util SHARED ++ casprintf.c ++ error.c ++ make_printable.c ++ memblock.c ++ resource.c ++ sleep.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..98d24f4 +--- /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: +diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt +new file mode 100644 +index 0000000..4744f9c +--- /dev/null ++++ b/lib/libwww_transport/CMakeLists.txt +@@ -0,0 +1,4 @@ ++# -*- cmake -*- ++ ++if(MUST_BUILD_LIBWWW_CLIENT) ++endif(MUST_BUILD_LIBWWW_CLIENT) +diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt +new file mode 100644 +index 0000000..be6ded2 +--- /dev/null ++++ b/lib/util/CMakeLists.txt +@@ -0,0 +1,13 @@ ++## -*- cmake -*- ++ ++set(util_SOURCES ++ casprintf.c ++ cmdline_parser.c ++ getoptx.c ++ getoptx.h) ++ ++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..4f7408e +--- /dev/null ++++ b/lib/wininet_transport/CMakeLists.txt +@@ -0,0 +1,4 @@ ++# -*- cmake -*- ++ ++if(MUST_BUILD_WININET_CLIENT) ++endif(MUST_BUILD_WININET_CLIENT) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +new file mode 100644 +index 0000000..c96f206 +--- /dev/null ++++ b/src/CMakeLists.txt +@@ -0,0 +1,106 @@ ++# -*- cmake -*- ++ ++if(ENABLE_LIBXML2_BACKEND) ++ set(xmlrpc_xml_parser xmlrpc_libxml2.c) ++ set(libxml_INCLUDES ${LIBXML2_CFLAGS}) ++ set(libxml_LIBS ${LIBXML2_LINK_FLAGS}) ++ 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}") ++ 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_LINK_FLAGS}) ++ set(xmlrpc_client_pkgconfig_req libcurl) ++ list(APPEND transport_SOURCES ${curl_srcdir}/xmlrpc_curl_transport.c ${curl_srcdir}/xmlrpc_curl_transport.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) ++add_subdirectory(test) ++ ++ ++ ++### libxmlrpc.so ++add_library(xmlrpc SHARED ++ trace.c ${xmlrpc_xml_parser} ++ xmlrpc_data.c xmlrpc_datetime.c xmlrpc_array.c xmlrpc_struct.c ++ xmlrpc_builddecomp.c xmlrpc_parse.c xmlrpc_serialize.c ++ xmlrpc_base64.c xmlrpc_utf8.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 ${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 system_method.c) ++target_link_libraries(xmlrpc_server xmlrpc) ++list(APPEND lib_TARGETS xmlrpc_server) ++ensc_pkgconfig(xmlrpc_server) ++ ++ ++### libxmlrpc_server_abyss.so ++add_library(xmlrpc_server_abyss SHARED ++ xmlrpc_server_abyss.c) ++target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server) ++list(APPEND lib_TARGETS xmlrpc_server_abyss) ++ensc_pkgconfig(xmlrpc_server_abyss) ++ ++ ++ ++### libxmlrpc_server_cgi.so ++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) ++ ++ ++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..9ab2530 +--- /dev/null ++++ b/src/cpp/CMakeLists.txt +@@ -0,0 +1,48 @@ ++# -*- 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) ++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 ++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++) ++ ++####### libxmlrpc_client++.so ++add_library(xmlrpc_client++ SHARED ++ client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.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) ++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_C_LIBVERSION} ++ SOVERSION ${XMLRPC_C_SOVERSION}) +diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake +new file mode 100644 +index 0000000..0bf5dc3 +--- /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 ++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..0357491 +--- /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 ++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..7e21383 +--- /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_client ++Libs: -L${libdir} -lxmlrpc_cpp ++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..7ddcca8 +--- /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 ++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..f0e4cd0 +--- /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_abyss xmlrpc_server++ ++Libs: -L${libdir} -lxmlrpc_server_abyss++ ++Cflags: -I${includedir} +diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt +new file mode 100644 +index 0000000..1ad605b +--- /dev/null ++++ b/src/test/CMakeLists.txt +@@ -0,0 +1,27 @@ ++# -*- cmake -*- ++ ++set(test_SOURCES ++ test.c cgi.c method_registry.c parse_xml.c serialize.c server_abyss.c ++ value.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(cgitest1 cgitest1.c) ++target_link_libraries(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) +diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake +new file mode 100644 +index 0000000..4c92f93 +--- /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..8e74c44 +--- /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@ ++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..cb7d4cd +--- /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 ++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..0357ff9 +--- /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 ++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..8786b75 +--- /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 ++Libs: -L${libdir} -lxmlrpc_server_cgi ++Cflags: -I${includedir} +diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt +new file mode 100644 +index 0000000..14010f4 +--- /dev/null ++++ b/tools/CMakeLists.txt +@@ -0,0 +1,9 @@ ++# -*- cmake -*- ++ ++add_subdirectory(binmode-rpc-kit) ++add_subdirectory(turbocharger) ++ ++add_subdirectory(xmlrpc) ++add_subdirectory(xmlrpc_transport) ++ ++add_subdirectory(xml-rpc-api2cpp ) +diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt +new file mode 100644 +index 0000000..a707c75 +--- /dev/null ++++ b/tools/binmode-rpc-kit/CMakeLists.txt +@@ -0,0 +1,2 @@ ++# -*- 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..c759dec +--- /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 xmlrpc_server) ++ ++install(TARGETS xml-rpc-api2cpp ++ RUNTIME DESTINATION bin) ++ ++install(FILES xml-rpc-api2cpp.1 ++ DESTINATION ${mandir}/man1) +diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt +new file mode 100644 +index 0000000..976df30 +--- /dev/null ++++ b/tools/xmlrpc/CMakeLists.txt +@@ -0,0 +1,15 @@ ++# -*- cmake -*- ++ ++add_executable(tool-xmlrpc ++ xmlrpc.c ++ dumpvalue.c ++ dumpvalue.h) ++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_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..35beafc +--- /dev/null ++++ b/version.h.cmake +@@ -0,0 +1,2 @@ ++/* This file was generated by a make rule */ ++#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@" +diff --git a/xmlrpc-c-config b/xmlrpc-c-config +new file mode 100755 +index 0000000..8f4f51b +--- /dev/null ++++ b/xmlrpc-c-config +@@ -0,0 +1,67 @@ ++#! /bin/sh ++ ++comp= ++ ++need_cxx= ++need_client= ++need_server= ++need_abyss= ++ ++while test $# -gt 0; do ++ case $1 in ++ (c++) comp="$comp xmlrpc_cpp";; ++ (server-util) comp="$comp xmlrpc_server_util";; ++ (cgi-server) comp="$comp xmlrpc_server_cgi";; ++ (c++2) need_cxx=1;; ++ (abyss-server) need_abyss=1;; ++ (client|libwww-client) need_client=1;; ++ (--) shift; break;; ++ (--*) break;; ++ (*) ++ echo "Unrecognized token '$1'" ++ exit 1 ++ ;; ++ esac ++ shift ++done ++ ++if test -z "$need_cxx"; then ++ test -z "$need_client" || comp="$comp xmlrpc_client" ++ test -z "$need_abyss" || comp="$comp xmlrpc_abyss" ++ test -z "$need_server" || comp="$comp xmlrpc_server" ++else ++ test -z "$need_client" || comp="$comp xmlrpc_client++" ++ test -z "$need_abyss" || comp="$comp xmlrpc_abyss++" ++ test -z "$need_server" || comp="$comp xmlrpc_server++" ++fi ++ ++dummy_comp=xmlrpc_client ++ ++case $1 in ++ (--features|--modules) ++ echo "c++ abyss-server curl-client" ++ exit 0 ++ ;; ++ (--version) ++ set -- --modversion ++ ;; ++ (--exec-prefix) ++ set -- --variable=prefix ++ ;; ++ (--*dir|--prefix) ++ set -- --variable=${1##--} ++ ;; ++ (--ldflags) ++ set -- --libs-only-L ++ ;; ++ (--ldadd) ++ set -- --libs-only-l ++ ;; ++ (*) ++ dummy_comp= ++ ;; ++esac ++ ++test x"$comp" != x || comp=$dummy_comp ++ ++exec pkg-config "$@" $comp +diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake +new file mode 100644 +index 0000000..98b37ef +--- /dev/null ++++ b/xmlrpc_config.h.cmake +@@ -0,0 +1,21 @@ ++/* -*- c -*- */ ++ ++#ifndef H_XMLRPC_C_CONFIG_H ++ ++#cmakedefine HAVE_WCHAR_H ++#cmakedefine HAVE_SETENV ++#define HAVE_SYS_IOCTL_H 0@HAVE_SYS_IOCTL_H@ ++ ++#define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@ ++#define XMLRPC_HAVE_WCHAR @XMLRPC_HAVE_WCHAR@ ++#define ATTR_UNUSED @ATTR_UNUSED@ ++#define DIRECTORY_SEPARATOR "@DIRECTORY_SEPARATOR@" ++ ++#ifdef HAVE_WCHAR_H ++# define HAVE_UNICODE_WCHAR 1 ++#else ++# define HAVE_UNICODE_WCHAR 0 ++#endif ++ ++ ++#endif +-- +1.5.0.5 +