xmlrpc-c/0003-make-cmake-transition.txt
ensc 087093797d - updated to 1.06.04
- patched the broken buildsystem
- disabled libwww backend explicitely
2006-09-18 06:22:42 +00:00

1142 lines
33 KiB
Plaintext

From 8ff6b9ed5b0f452b6fb0f9a1b2b5aed866dabdf3 Mon Sep 17 00:00:00 2001
From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Date: Sun, 17 Sep 2006 14:31:36 +0200
Subject: [PATCH] make -> cmake transition
---
CMakeLists.txt | 206 +++++++++++++++++++++++++++
cmake/try-attr.cc | 1
examples/CMakeLists.txt | 56 +++++++
examples/config.h | 1
examples/cpp/CMakeLists.txt | 25 +++
include/CMakeLists.txt | 3
include/xmlrpc-c/CMakeLists.txt | 31 ++++
include/xmlrpc-c/config.h.cmake | 8 +
lib/CMakeLists.txt | 12 ++
lib/abyss/CMakeLists.txt | 3
lib/abyss/src/CMakeLists.txt | 62 ++++++++
lib/abyss/src/xmlrpc_abyss.pc.cmake | 10 +
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 | 10 +
lib/expat/xmltok/CMakeLists.txt | 20 +++
lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 +
lib/libutil/CMakeLists.txt | 11 +
lib/libutil/xmlrpc_util.pc.cmake | 10 +
lib/libwww_transport/CMakeLists.txt | 4 +
lib/wininet_transport/CMakeLists.txt | 4 +
src/CMakeLists.txt | 106 ++++++++++++++
src/cpp/CMakeLists.txt | 48 ++++++
src/cpp/xmlrpc++.pc.cmake | 11 +
src/cpp/xmlrpc_client++.pc.cmake | 11 +
src/cpp/xmlrpc_cpp.pc.cmake | 11 +
src/cpp/xmlrpc_server++.pc.cmake | 11 +
src/cpp/xmlrpc_server_abyss++.pc.cmake | 11 +
src/xmlrpc.pc.cmake | 11 +
src/xmlrpc_client.pc.cmake | 11 +
src/xmlrpc_server.pc.cmake | 11 +
src/xmlrpc_server_abyss.pc.cmake | 11 +
src/xmlrpc_server_cgi.pc.cmake | 11 +
tools/CMakeLists.txt | 9 +
tools/binmode-rpc-kit/CMakeLists.txt | 2
tools/turbocharger/CMakeLists.txt | 1
tools/xml-rpc-api2cpp/CMakeLists.txt | 12 ++
transport_config.h.cmake | 16 ++
version.h.cmake | 2
xmlrpc_config.h.cmake | 18 ++
42 files changed, 836 insertions(+), 0 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..239a434
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,206 @@
+## -*- cmake -*-
+project(xmlrpc-c)
+include(UsePkgConfig)
+include(CheckIncludeFile)
+include(CheckFunctionExists)
+
+set(XMLRPC_C_VERSION "1.06.04" CACHE STRING "Version of xmlrpc-c")
+set(XMLRPC_C_LIBVERSION "3.7.0")
+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)
+
+
+
+###########
+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)
+
+
+#### <wchar.h> 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__)
+
+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(prefix ${CMAKE_INSTALL_PREFIX})
+set(libdir "${prefix}/lib")
+set(pkgconfdir "${libdir}/pkgconfig")
+set(includedir "${prefix}/include")
+
+
+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..a715bc5
--- /dev/null
+++ b/cmake/try-attr.cc
@@ -0,0 +1 @@
+int x __attribute__((CMAKE_TEST_ATTR));
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..4cbe95a
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,56 @@
+# -*- 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)
+
+## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it
+if(NOT MUST_BUILD_LIBWWW_CLIENT)
+ set_target_properties(${example_TARGETS}
+ PROPERTIES
+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS})
+endif(NOT MUST_BUILD_LIBWWW_CLIENT)
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..c2e3ab7
--- /dev/null
+++ b/examples/cpp/CMakeLists.txt
@@ -0,0 +1,25 @@
+# -*- 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)
+
+
+## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it
+if(NOT MUST_BUILD_LIBWWW_CLIENT)
+ set_target_properties(${example_TARGETS}
+ PROPERTIES
+ LINK_FLAGS ${XMLRPC_LINKER_FLAGS})
+endif(NOT MUST_BUILD_LIBWWW_CLIENT)
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..903f623
--- /dev/null
+++ b/include/xmlrpc-c/CMakeLists.txt
@@ -0,0 +1,31 @@
+# -*- cmake -*-
+
+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)
+
+if(ENABLE_CPLUSPLUS)
+ list(APPEND headers
+ oldcppwrapper.hpp girerr.hpp girmem.hpp base.hpp
+ timeout.hpp xml.hpp registry.hpp server_abyss.hpp)
+endif(ENABLE_CPLUSPLUS)
+
+if(MUST_BUILD_CLIENT)
+ list(APPEND headers
+ client.h transport.h client_global.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)
+endif(ENABLE_CGI_SERVER)
+
+install(FILES
+ ${headers}
+ DESTINATION ${includedir}/xmlrpc-c)
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 <xmlrpc-c/...> 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..4e18b81
--- /dev/null
+++ b/lib/abyss/src/CMakeLists.txt
@@ -0,0 +1,62 @@
+## -*- 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
+ http.c
+ http.h
+ init.c
+ 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..8f913e5
--- /dev/null
+++ b/lib/abyss/src/xmlrpc_abyss.pc.cmake
@@ -0,0 +1,10 @@
+prefix=@prefix@
+libdir=@libdir@
+
+Name: xmlrpc_abyss
+Description: XMLRPC Abyss base library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..cd9900f
--- /dev/null
+++ b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
@@ -0,0 +1,10 @@
+prefix=@prefix@
+libdir=@libdir@
+
+Name: xmlrpc_xmlparse
+Description: XMLRPC xmlparse library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..cc6ccab
--- /dev/null
+++ b/lib/libutil/CMakeLists.txt
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+
+add_library(xmlrpc_util SHARED
+ casprintf.c
+ error.c
+ make_printable.c
+ memblock.c
+ resource.c
+ sleep.c)
+
+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/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..bc0dce3
--- /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_build.c xmlrpc_decompose.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..3dba3a7
--- /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..9c35667
--- /dev/null
+++ b/src/cpp/xmlrpc++.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc++
+Description: XMLRPC C++ Base library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..a02bd6e
--- /dev/null
+++ b/src/cpp/xmlrpc_client++.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_client++
+Description: XMLRPC C++ Client library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..52c092c
--- /dev/null
+++ b/src/cpp/xmlrpc_cpp.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_cpp
+Description: XMLRPC CPP library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..71e394e
--- /dev/null
+++ b/src/cpp/xmlrpc_server++.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_server++
+Description: XMLRPC C++ Server library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..1d28749
--- /dev/null
+++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_server_abyss++
+Description: XMLRPC C++ Abyss-Server library
+Version: @XMLRPC_C_VERSION@
+
+Requires: xmlrpc_server_abyss xmlrpc_server++
+Libs: -L${libdir} -lxmlrpc_server_abyss++
+Cflags: -I${includedir}
diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake
new file mode 100644
index 0000000..7d74537
--- /dev/null
+++ b/src/xmlrpc.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc
+Description: XMLRPC base library
+Version: @XMLRPC_C_VERSION@
+
+Requires: @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..4233a27
--- /dev/null
+++ b/src/xmlrpc_client.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_client
+Description: XMLRPC client library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..3c585e5
--- /dev/null
+++ b/src/xmlrpc_server.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_server
+Description: XMLRPC Server library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..be2e4c1
--- /dev/null
+++ b/src/xmlrpc_server_abyss.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_server_abyss
+Description: XMLRPC Server Abyss library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..ac0c031
--- /dev/null
+++ b/src/xmlrpc_server_cgi.pc.cmake
@@ -0,0 +1,11 @@
+prefix=@prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: xmlrpc_server_cgi
+Description: XMLRPC CGI-Server library
+Version: @XMLRPC_C_VERSION@
+
+Requires: 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..a97e33c
--- /dev/null
+++ b/tools/xml-rpc-api2cpp/CMakeLists.txt
@@ -0,0 +1,12 @@
+# -*- 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)
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_config.h.cmake b/xmlrpc_config.h.cmake
new file mode 100644
index 0000000..478c252
--- /dev/null
+++ b/xmlrpc_config.h.cmake
@@ -0,0 +1,18 @@
+#ifndef H_XMLRPC_C_CONFIG_H
+
+#cmakedefine HAVE_WCHAR_H
+#cmakedefine HAVE_SETENV
+#define HAVE_SYS_IOCTL_H 0@HAVE_SYS_IOCTL_H@
+
+#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.4.2