1 From 26a4d5168bb69474c3cc304f90592d37bf0be8fe Mon Sep 17 00:00:00 2001
2 From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
3 Date: Sat, 5 Apr 2008 10:55:02 +0200
4 Subject: [PATCH 1/8] make -> cmake transition
8 CMakeLists.txt | 290 +++++++++++++++++++++++++++
9 cmake/try-attr.cc | 3 +
10 cmake/va-list-is-array.c | 9 +
11 examples/CMakeLists.txt | 68 +++++++
12 examples/config.h | 1 +
13 examples/cpp/CMakeLists.txt | 34 ++++
14 include/CMakeLists.txt | 3 +
15 include/xmlrpc-c/CMakeLists.txt | 74 +++++++
16 include/xmlrpc-c/config.h.cmake | 34 ++++
17 lib/CMakeLists.txt | 12 ++
18 lib/abyss/CMakeLists.txt | 3 +
19 lib/abyss/src/CMakeLists.txt | 70 +++++++
20 lib/abyss/src/xmlrpc_abyss.pc.cmake | 12 ++
21 lib/curl_transport/CMakeLists.txt | 20 ++
22 lib/expat/CMakeLists.txt | 9 +
23 lib/expat/gennmtab/CMakeLists.txt | 3 +
24 lib/expat/xmlparse/CMakeLists.txt | 7 +
25 lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | 12 ++
26 lib/expat/xmltok/CMakeLists.txt | 23 +++
27 lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | 9 +
28 lib/libutil/CMakeLists.txt | 26 +++
29 lib/libutil/xmlrpc_util.pc.cmake | 10 +
30 lib/libwww_transport/CMakeLists.txt | 7 +
31 lib/util/CMakeLists.txt | 17 ++
32 lib/wininet_transport/CMakeLists.txt | 7 +
33 src/CMakeLists.txt | 121 +++++++++++
34 src/cpp/CMakeLists.txt | 70 +++++++
35 src/cpp/test/CMakeLists.txt | 18 ++
36 src/cpp/xmlrpc++.pc.cmake | 12 ++
37 src/cpp/xmlrpc_client++.pc.cmake | 12 ++
38 src/cpp/xmlrpc_cpp.pc.cmake | 12 ++
39 src/cpp/xmlrpc_packetsocket.pc.cmake | 12 ++
40 src/cpp/xmlrpc_server++.pc.cmake | 12 ++
41 src/cpp/xmlrpc_server_abyss++.pc.cmake | 12 ++
42 src/cpp/xmlrpc_server_cgi++.pc.cmake | 12 ++
43 src/cpp/xmlrpc_server_pstream++.pc.cmake | 12 ++
44 src/xmlrpc.pc.cmake | 12 ++
45 src/xmlrpc_client.pc.cmake | 12 ++
46 src/xmlrpc_server.pc.cmake | 12 ++
47 src/xmlrpc_server_abyss.pc.cmake | 12 ++
48 src/xmlrpc_server_cgi.pc.cmake | 12 ++
49 test/CMakeLists.txt | 41 ++++
50 test/cpp/CMakeLists.txt | 34 ++++
51 tools/CMakeLists.txt | 22 ++
52 tools/binmode-rpc-kit/CMakeLists.txt | 1 +
53 tools/lib/CMakeLists.txt | 1 +
54 tools/turbocharger/CMakeLists.txt | 1 +
55 tools/xml-rpc-api2cpp/CMakeLists.txt | 15 ++
56 tools/xml-rpc-api2txt/CMakeLists.txt | 7 +
57 tools/xml/CMakeLists.txt | 16 ++
58 tools/xmlrpc/CMakeLists.txt | 17 ++
59 tools/xmlrpc/config.h | 1 +
60 tools/xmlrpc_cpp_proxy/CMakeLists.txt | 17 ++
61 tools/xmlrpc_pstream/CMakeLists.txt | 16 ++
62 tools/xmlrpc_transport/CMakeLists.txt | 9 +
63 tools/xmlrpc_transport/config.h | 1 +
64 transport_config.h.cmake | 16 ++
66 xmlrpc-c-config | 105 ++++++++++
67 xmlrpc_config.h.cmake | 183 +++++++++++++++++
68 60 files changed, 1636 insertions(+)
69 create mode 100644 CMakeLists.txt
70 create mode 100644 cmake/try-attr.cc
71 create mode 100644 cmake/va-list-is-array.c
72 create mode 100644 examples/CMakeLists.txt
73 create mode 100644 examples/config.h
74 create mode 100644 examples/cpp/CMakeLists.txt
75 create mode 100644 include/CMakeLists.txt
76 create mode 100644 include/xmlrpc-c/CMakeLists.txt
77 create mode 100644 include/xmlrpc-c/config.h.cmake
78 create mode 100644 lib/CMakeLists.txt
79 create mode 100644 lib/abyss/CMakeLists.txt
80 create mode 100644 lib/abyss/src/CMakeLists.txt
81 create mode 100644 lib/abyss/src/xmlrpc_abyss.pc.cmake
82 create mode 100644 lib/curl_transport/CMakeLists.txt
83 create mode 100644 lib/expat/CMakeLists.txt
84 create mode 100644 lib/expat/gennmtab/CMakeLists.txt
85 create mode 100644 lib/expat/xmlparse/CMakeLists.txt
86 create mode 100644 lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
87 create mode 100644 lib/expat/xmltok/CMakeLists.txt
88 create mode 100644 lib/expat/xmltok/xmlrpc_xmltok.pc.cmake
89 create mode 100644 lib/libutil/CMakeLists.txt
90 create mode 100644 lib/libutil/xmlrpc_util.pc.cmake
91 create mode 100644 lib/libwww_transport/CMakeLists.txt
92 create mode 100644 lib/util/CMakeLists.txt
93 create mode 100644 lib/wininet_transport/CMakeLists.txt
94 create mode 100644 src/CMakeLists.txt
95 create mode 100644 src/cpp/CMakeLists.txt
96 create mode 100644 src/cpp/test/CMakeLists.txt
97 create mode 100644 src/cpp/xmlrpc++.pc.cmake
98 create mode 100644 src/cpp/xmlrpc_client++.pc.cmake
99 create mode 100644 src/cpp/xmlrpc_cpp.pc.cmake
100 create mode 100644 src/cpp/xmlrpc_packetsocket.pc.cmake
101 create mode 100644 src/cpp/xmlrpc_server++.pc.cmake
102 create mode 100644 src/cpp/xmlrpc_server_abyss++.pc.cmake
103 create mode 100644 src/cpp/xmlrpc_server_cgi++.pc.cmake
104 create mode 100644 src/cpp/xmlrpc_server_pstream++.pc.cmake
105 create mode 100644 src/xmlrpc.pc.cmake
106 create mode 100644 src/xmlrpc_client.pc.cmake
107 create mode 100644 src/xmlrpc_server.pc.cmake
108 create mode 100644 src/xmlrpc_server_abyss.pc.cmake
109 create mode 100644 src/xmlrpc_server_cgi.pc.cmake
110 create mode 100644 test/CMakeLists.txt
111 create mode 100644 test/cpp/CMakeLists.txt
112 create mode 100644 tools/CMakeLists.txt
113 create mode 100644 tools/binmode-rpc-kit/CMakeLists.txt
114 create mode 100644 tools/lib/CMakeLists.txt
115 create mode 100644 tools/turbocharger/CMakeLists.txt
116 create mode 100644 tools/xml-rpc-api2cpp/CMakeLists.txt
117 create mode 100644 tools/xml-rpc-api2txt/CMakeLists.txt
118 create mode 100644 tools/xml/CMakeLists.txt
119 create mode 100644 tools/xmlrpc/CMakeLists.txt
120 create mode 100644 tools/xmlrpc/config.h
121 create mode 100644 tools/xmlrpc_cpp_proxy/CMakeLists.txt
122 create mode 100644 tools/xmlrpc_pstream/CMakeLists.txt
123 create mode 100644 tools/xmlrpc_transport/CMakeLists.txt
124 create mode 100644 tools/xmlrpc_transport/config.h
125 create mode 100644 transport_config.h.cmake
126 create mode 100644 version.h.cmake
127 create mode 100755 xmlrpc-c-config
128 create mode 100644 xmlrpc_config.h.cmake
130 diff --git a/CMakeLists.txt b/CMakeLists.txt
132 index 0000000..2876dea
138 +include(FindPkgConfig)
139 +include(CheckIncludeFile)
140 +include(CheckFunctionExists)
142 +cmake_minimum_required(VERSION 2.4)
144 +if(COMMAND cmake_policy)
145 + cmake_policy(SET CMP0003 NEW)
149 +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c")
150 +set(XMLRPC_C_VERSION_MINOR "32" CACHE STRING "Version (minor) of xmlrpc-c")
151 +set(XMLRPC_C_VERSION_POINT "5" CACHE STRING "Version (point) of xmlrpc-c")
153 +set(XMLRPC_C_VERSION
154 + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}"
155 + CACHE STRING "Version of xmlrpc-c")
157 +set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}")
158 +set(XMLRPC_C_SOVERSION "3")
160 +set(XMLRPC_CXX_LIBVERSION "8.${XMLRPC_C_VERSION_MINOR}")
161 +set(XMLRPC_CXX_SOVERSION "8")
163 +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}")
164 +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MINOR_NUM "${XMLRPC_C_VERSION_MINOR}")
165 +string(REGEX REPLACE "^0+(.)" "\\1" XMLRPC_C_VERSION_POINT_NUM "${XMLRPC_C_VERSION_POINT}")
168 +macro(ensc_set_bool NAME VALUE DESC)
169 + set(${NAME} ${VALUE} CACHE BOOL ${DESC})
175 +endmacro(ensc_set_bool)
177 +macro(ensc_pkgconfig COMP)
178 + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${COMP}.pc.cmake
179 + ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc
181 + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc
182 + DESTINATION ${pkgconfdir})
183 +endmacro(ensc_pkgconfig)
185 +macro(ensc_pkgconfig_lib TARGET LIBS)
186 + get_target_property(libtype ${TARGET} TYPE)
187 + if("${libtype}" STREQUAL "STATIC_LIBRARY")
188 + list(APPEND ${TARGET}_pkgconfig_libs "${LIBS}")
189 + endif("${libtype}" STREQUAL "STATIC_LIBRARY")
190 +endmacro(ensc_pkgconfig_lib)
192 +macro(ensc_set_link_exe_flags)
193 + ## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it
194 + if(NOT MUST_BUILD_LIBWWW_CLIENT)
195 + set_target_properties(${ARGV}
197 + LINK_FLAGS ${XMLRPC_LINKER_FLAGS})
198 + endif(NOT MUST_BUILD_LIBWWW_CLIENT)
199 +endmacro(ensc_set_link_exe_flags)
203 + find_program(WININET_CONFIG_EXECUTABLE wininet-config)
205 + if(DEFINED MUST_BUILD_WININET_CLIENT)
206 + set(tmp ${MUST_BUILD_WININET_CLIENT})
207 + else(DEFINED MUST_BUILD_WININET_CLIENT)
208 + if(WININET_CONFIG_EXECUTABLE)
210 + else(WININET_CONFIG_EXECUTABLE)
212 + endif(WININET_CONFIG_EXECUTABLE)
213 + endif(DEFINED MUST_BUILD_WININET_CLIENT)
221 + set(MUST_BUILD_CLIENT 1)
222 + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE WININET_VERSION)
223 + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE WININET_CFLAGS)
224 + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE WININET_LDADD)
225 + message(STATUS "Using WinInet ${WININET_VERSION} transport")
228 +ensc_set_bool(MUST_BUILD_WININET_CLIENT ${tmp} "Set iff WinInet client transport shall be built")
229 +set(wininet_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/wininet_transport)
232 +if(DEFINED MUST_BUILD_CURL_CLIENT)
234 +else(DEFINED MUST_BUILD_CURL_CLIENT)
236 +endif(DEFINED MUST_BUILD_CURL_CLIENT)
238 +pkg_check_modules(CURL ${tmp} libcurl)
240 +ensc_set_bool(MUST_BUILD_CURL_CLIENT ${CURL_FOUND} "Set iff Curl client transport shall be built")
241 +set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport)
243 +if(MUST_BUILD_CURL_CLIENT)
244 + set(MUST_BUILD_CLIENT 1)
245 +endif(MUST_BUILD_CURL_CLIENT)
248 +find_program(LIBWWW_CONFIG_EXECUTABLE libwww-config)
249 +if(DEFINED MUST_BUILD_LIBWWW_CLIENT)
250 + set(tmp ${MUST_BUILD_LIBWWW_CLIENT})
251 +else(DEFINED MUST_BUILD_LIBWWW_CLIENT)
252 + if(LIBWWW_CONFIG_EXECUTABLE)
254 + else(LIBWWW_CONFIG_EXECUTABLE)
256 + endif(LIBWWW_CONFIG_EXECUTABLE)
257 +endif(DEFINED MUST_BUILD_LIBWWW_CLIENT)
260 + set(MUST_BUILD_CLIENT 1)
261 + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LIBWWW_VERSION)
262 + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE LIBWWW_LIBS)
263 + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE LIBWWW_CFLAGS)
264 + message(STATUS "Using libwww ${LIBWWW_VERSION} transport")
266 +ensc_set_bool(MUST_BUILD_LIBWWW_CLIENT ${tmp} "Set iff LibWWW client transport shall be built")
267 +set(libwww_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/libwww_transport)
271 +set(ENABLE_CGI_SERVER 1 CACHE BOOL "Set iff CGI server shall be enabled")
272 +set(ENABLE_CPLUSPLUS 1 CACHE BOOL "Set iff C++ part shall be enabled")
273 +set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff Abyss server shall be enabled")
274 +set(ENABLE_LIBXML2_BACKEND 1 CACHE BOOL "Set iff libxml2 backend shall be used")
275 +set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff abyss server shall be enabled")
276 +set(ENABLE_ABYSS_THREADS 1 CACHE BOOL "Use pthread")
278 +if(ENABLE_LIBXML2_BACKEND)
279 + pkg_check_modules(LIBXML2 libxml-2.0)
282 + set(libxml_pkgconfig libxml-2.0) # TODO: add more alternative modules
283 + endif(LIBXML2_FOUND)
284 +endif(ENABLE_LIBXML2_BACKEND)
288 +pkg_check_modules(NCURSES ncurses)
289 +find_library(READLINE readline)
291 +if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT)
292 + if (NCURSES_FOUND AND READLINE)
293 + set(BUILD_XMLRPC_PSTREAM 1)
294 + message(STATUS "Building xmlrpc_pstream tool")
296 + message(STATUS "Tools will be built")
299 + message(STATUS "Tools will not be built")
303 +#### <wchar.h> tests
304 +check_include_file(wchar.h _have_wchar_h)
306 + set(HAVE_WCHAR_H 1)
308 + set(HAVE_WCHAR_H 1)
309 +endif(_have_wchar_h)
310 +set(XMLRPC_HAVE_WCHAR ${HAVE_WCHAR_H})
311 +set(HAVE_WCHAR_H_DEFINE ${HAVE_WCHAR_H})
315 +set(LINKER_AS_NEEDED 1 CACHE BOOL "Use the --as-needed linker option")
316 +if(LINKER_AS_NEEDED)
317 + set(XMLRPC_LINKER_FLAGS "-Wl,--as-needed")
318 +endif(LINKER_AS_NEEDED)
321 +try_compile(HAVE_ATTR_UNUSED
322 + ${CMAKE_BINARY_DIR}/
323 + ${xmlrpc-c_SOURCE_DIR}/cmake/try-attr.cc
324 + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DCMAKE_TEST_ATTR=__unused__)
326 +try_compile(VA_LIST_IS_NOT_ARRAY
327 + ${CMAKE_BINARY_DIR}/
328 + ${xmlrpc-c_SOURCE_DIR}/cmake/va-list-is-array.c)
330 +if(VA_LIST_IS_NOT_ARRAY)
331 + set(VA_LIST_IS_ARRAY 0)
332 + message(STATUS "va_list is not an array")
333 +else(VA_LIST_IS_NOT_ARRAY)
334 + set(VA_LIST_IS_ARRAY 1)
335 + message(STATUS "va_list is an array")
336 +endif(VA_LIST_IS_NOT_ARRAY)
339 +if(HAVE_ATTR_UNUSED)
340 + set(ATTR_UNUSED "__attribute__((__unused__))")
341 +endif(HAVE_ATTR_UNUSED)
344 + set(DIRECTORY_SEPARATOR "\\")
345 + set(THREAD_LIBS "")
347 + set(DIRECTORY_SEPARATOR "/")
348 + set(THREAD_LIBS "pthread")
349 + set(THREAD_LIBS_PKGCONFIG "-lpthread")
352 +check_include_file(sys/filio.h HAVE_SYS_FILIO_H)
353 +check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H)
354 +check_include_file(sys/select.h HAVE_SYS_SELECT_H)
355 +check_function_exists(setenv HAVE_SETENV)
356 +check_function_exists(strcasecmp HAVE_STRCASECMP)
357 +check_function_exists(_stricmp HAVE__STRICMP)
358 +check_function_exists(stricmp HAVE_STRICMP)
359 +check_function_exists(strtoll HAVE_STRTOLL)
360 +check_function_exists(__strtoll HAVE___STRTOLL)
361 +check_function_exists(strtoull HAVE_STRTOULL)
362 +check_function_exists(__strtoull HAVE___STRTOULL)
363 +check_function_exists(strtoq HAVE_STRTOQ)
364 +check_function_exists(strtouq HAVE_STRTOUQ)
365 +check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
366 +check_function_exists(setgroups HAVE_SETGROUPS)
367 +check_function_exists(asprintf HAVE_ASPRINTF)
368 +check_function_exists(pselect HAVE_PSELECT)
369 +check_function_exists(wcsncmp HAVE_WCSNCMP)
370 +check_function_exists(localtime_r HAVE_LOCALTIME_R)
371 +check_function_exists(gmtime_r HAVE_GMTIME_R)
374 +configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake
375 + ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h
376 + ESCAPE_QUOTES @ONLY)
378 +configure_file(${xmlrpc-c_SOURCE_DIR}/version.h.cmake
379 + ${xmlrpc-c_BINARY_DIR}/version.h
380 + ESCAPE_QUOTES @ONLY)
382 +configure_file(${xmlrpc-c_SOURCE_DIR}/transport_config.h.cmake
383 + ${xmlrpc-c_BINARY_DIR}/transport_config.h
384 + ESCAPE_QUOTES @ONLY)
386 +configure_file(${xmlrpc-c_SOURCE_DIR}/include/xmlrpc-c/config.h.cmake
387 + ${xmlrpc-c_BINARY_DIR}/include/xmlrpc-c/config.h
388 + ESCAPE_QUOTES @ONLY)
391 +include_directories(${xmlrpc-c_SOURCE_DIR}/include)
392 +include_directories(${xmlrpc-c_BINARY_DIR}/include)
393 +include_directories(${xmlrpc-c_SOURCE_DIR}/lib/util/include)
394 +include_directories(${xmlrpc-c_BINARY_DIR})
396 +add_custom_target(dist
397 + rm -rf _dist && mkdir -p _dist/xmlrpc-c-${XMLRPC_C_VERSION}
398 + COMMAND cp -a ${xmlrpc-c_SOURCE_DIR}/* _dist/xmlrpc-c-${XMLRPC_C_VERSION}/
399 + COMMAND cd _dist && tar cjf ../xmlrpc-c-${XMLRPC_C_VERSION}.tar.bz2 xmlrpc-c-${XMLRPC_C_VERSION} --exclude=.git --exclude=CVS --exclude=.svn
402 +set(_lib lib CACHE STRING "Basename of the library-directory; usually 'lib' or 'lib64' (on multilib archs)")
403 +set(_bin bin CACHE STRING "Basename of the bin-directory; usually 'bin'")
404 +set(prefix ${CMAKE_INSTALL_PREFIX})
405 +set(libdir "${prefix}/${_lib}")
406 +set(bindir "${prefix}/${_bin}")
407 +set(mandir "${prefix}/share/man")
408 +set(pkgconfdir "${libdir}/pkgconfig")
409 +set(includedir "${prefix}/include")
413 +install(PROGRAMS xmlrpc-c-config DESTINATION ${_bin})
417 +add_subdirectory(test)
418 +add_subdirectory(lib)
419 +add_subdirectory(examples)
420 +add_subdirectory(include)
421 +add_subdirectory(src)
424 + add_subdirectory(tools)
426 diff --git a/cmake/try-attr.cc b/cmake/try-attr.cc
428 index 0000000..4668c5b
430 +++ b/cmake/try-attr.cc
432 +int x __attribute__((CMAKE_TEST_ATTR));
435 diff --git a/cmake/va-list-is-array.c b/cmake/va-list-is-array.c
437 index 0000000..1ad0bab
439 +++ b/cmake/va-list-is-array.c
445 + va_list list1, list2;
450 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
452 index 0000000..1535adf
454 +++ b/examples/CMakeLists.txt
458 +include_directories(${CMAKE_CURRENT_BINARY_DIR})
460 +macro(ensc_add_example name ext class)
461 + # HACK: avoid name collision of c and c++ program
462 + if("${ext}" STREQUAL "cpp")
463 + set(_target ${name}++)
464 + else("${ext}" STREQUAL "cpp")
465 + set(_target ${name})
466 + endif("${ext}" STREQUAL "cpp")
468 + add_executable(${_target} ${name}.${ext})
469 + target_link_libraries(${_target} ${${class}_LIBS})
470 + list(APPEND ${class}_TARGETS ${_target})
471 + list(APPEND example_TARGETS ${_target})
472 +endmacro(ensc_add_example)
474 +if(ENABLE_CPLUSPLUS)
475 + add_subdirectory(cpp)
476 +endif(ENABLE_CPLUSPLUS)
479 +set(base_LIBS xmlrpc)
480 +ensc_add_example(json c base)
481 +ensc_add_example(gen_sample_add_xml c base)
482 +ensc_add_example(parse_xml c base)
484 +if(MUST_BUILD_CLIENT)
485 + set(client_LIBS xmlrpc_client)
487 + ensc_add_example(auth_client c client)
488 + ensc_add_example(compound_value_client c client)
489 + ensc_add_example(synch_client c client)
490 + ensc_add_example(xmlrpc_sample_add_client c client)
491 + ensc_add_example(xmlrpc_asynch_client c client)
492 +endif(MUST_BUILD_CLIENT)
494 +if(MUST_BUILD_CURL_CLIENT)
495 + set(client_LIBS xmlrpc_client)
497 + if(NOT DEFINED MSVCRT)
498 + ensc_add_example(interrupted_client c client)
499 + endif(NOT DEFINED MSVCRT)
500 +endif(MUST_BUILD_CURL_CLIENT)
502 +if(ENABLE_CGI_SERVER)
503 + set(cgi_server_LIBS xmlrpc_server_cgi)
505 + ensc_add_example(xmlrpc_sample_add_server_cgi c cgi_server)
506 +endif(ENABLE_CGI_SERVER)
508 +if(ENABLE_ABYSS_SERVER)
509 + set(abyss_server_LIBS xmlrpc_server_abyss)
511 + ensc_add_example(compound_value_server c abyss_server)
512 + ensc_add_example(xmlrpc_inetd_server c abyss_server)
513 + ensc_add_example(xmlrpc_socket_server c abyss_server)
514 + ensc_add_example(xmlrpc_loop_server c abyss_server)
515 + ensc_add_example(xmlrpc_sample_add_server c abyss_server)
516 + ensc_add_example(xmlrpc_server_validatee c abyss_server)
518 + if(NOT DEFINED MSVCRT)
519 + ensc_add_example(interrupted_server c abyss_server)
520 + endif(NOT DEFINED MSVCRT)
521 +endif(ENABLE_ABYSS_SERVER)
523 +ensc_set_link_exe_flags(${example_TARGETS})
524 diff --git a/examples/config.h b/examples/config.h
526 index 0000000..31d5f9b
528 +++ b/examples/config.h
530 +#include "../xmlrpc_config.h"
531 diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt
533 index 0000000..093a75d
535 +++ b/examples/cpp/CMakeLists.txt
539 +if(ENABLE_ABYSS_SERVER)
540 + set(abyss_serverxx_LIBS xmlrpc_server_abyss++)
542 + ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx)
543 + ensc_add_example(xmlrpc_loop_server cpp abyss_serverxx)
544 + ensc_add_example(xmlrpc_sample_add_server cpp abyss_serverxx)
545 + ensc_add_example(callinfo_abyss_server cpp abyss_serverxx)
546 +endif(ENABLE_ABYSS_SERVER)
548 +if (ENABLE_CGI_SERVER)
549 + set(cgi_serverxx_LIBS xmlrpc_server_cgi++)
551 + ensc_add_example(xmlrpc_sample_add_server_cgi cpp cgi_serverxx)
552 +endif(ENABLE_CGI_SERVER)
554 +if(MUST_BUILD_CLIENT)
555 + set(abyss_clientxx_LIBS xmlrpc_client++)
557 + ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx)
558 + ensc_add_example(sample_add_client_complex cpp abyss_clientxx)
559 + ensc_add_example(asynch_client cpp abyss_clientxx)
561 + ensc_add_example(pstream_client cpp abyss_clientxx)
562 +endif(MUST_BUILD_CLIENT)
564 +set(pstream_serverxx_LIBS xmlrpc_server_pstream++)
565 +ensc_add_example(pstream_inetd_server cpp pstream_serverxx)
566 +ensc_add_example(pstream_serial_server cpp pstream_serverxx)
570 +ensc_set_link_exe_flags(${example_TARGETS})
571 diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
573 index 0000000..ebfdba5
575 +++ b/include/CMakeLists.txt
579 +add_subdirectory(xmlrpc-c)
580 diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt
582 index 0000000..b9386b8
584 +++ b/include/xmlrpc-c/CMakeLists.txt
588 +macro(ensc_install_symlink src dst)
589 + install(CODE "EXECUTE_PROCESS(COMMAND ln -s xmlrpc-c/${src} \$ENV{DESTDIR}${includedir}/${dst})")
590 +endmacro(ensc_install_symlink)
593 + ${CMAKE_CURRENT_BINARY_DIR}/config.h
604 + server_w32httpsys.h
607 +list(APPEND compat_links "oldxmlrpc.h xmlrpc.h")
608 +list(APPEND compat_links "server.h xmlrpc_server.h")
609 +list(APPEND compat_links "server_abyss.h xmlrpc_abyss.h")
610 +list(APPEND compat_links "server_w32httpsys.h xmlrpc_server_w32httpsys.h")
613 +if(ENABLE_CPLUSPLUS)
614 + list(APPEND headers
624 + server_pstream.hpp)
626 + list(APPEND compat_links "oldcppwrapper.hpp XmlRpcCpp.h")
627 +endif(ENABLE_CPLUSPLUS)
629 +if(MUST_BUILD_CLIENT)
630 + list(APPEND headers
635 + list(APPEND compat_links "client.h xmlrpc_client.h")
637 + if(ENABLE_CPLUSPLUS)
638 + list(APPEND headers
640 + client_transport.hpp
642 + endif(ENABLE_CPLUSPLUS)
643 +endif(MUST_BUILD_CLIENT)
645 +if(ENABLE_CGI_SERVER)
646 + list(APPEND headers
649 + list(APPEND compat_links "server_cgi.h xmlrpc_cgi.h")
650 +endif(ENABLE_CGI_SERVER)
654 + DESTINATION ${includedir}/xmlrpc-c)
656 +foreach (ln ${compat_links})
657 + separate_arguments(ln)
658 + ensc_install_symlink(${ln})
660 diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake
662 index 0000000..48f64be
664 +++ b/include/xmlrpc-c/config.h.cmake
667 +#ifndef XMLRPC_C_CONFIG_H_INCLUDED
668 +#define XMLRPC_C_CONFIG_H_INCLUDED
670 +/* This file, part of XML-RPC For C/C++, is meant to
671 + define characteristics of this particular installation
672 + that the other <xmlrpc-c/...> header files need in
673 + order to compile correctly when #included in Xmlrpc-c
676 + Those header files #include this one.
678 + This file was created by a make rule.
680 +#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@
682 + /* SOCKET is a type defined by <winsock.h>. Anyone who
683 + uses XMLRPC_SOCKET on a WIN32 system must #include
686 + #define XMLRPC_SOCKET SOCKET
687 + #define XMLRPC_HAVE_TIMEVAL 0
688 + #define XMLRPC_HAVE_TIMESPEC 0
689 + #define XMLRPC_HAVE_PTHREAD 0
690 + #define XMLRPC_HAVE_WINTHREAD 1
692 + #define XMLRPC_SOCKET int
693 + #define XMLRPC_HAVE_TIMEVAL 1
694 + #define XMLRPC_HAVE_TIMESPEC 1
695 + #define XMLRPC_HAVE_PTHREAD 1
696 + #define XMLRPC_HAVE_WINTHREAD 0
700 diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
702 index 0000000..7f8f912
704 +++ b/lib/CMakeLists.txt
708 +add_subdirectory(abyss)
709 +add_subdirectory(libutil)
710 +add_subdirectory(util)
711 +add_subdirectory(curl_transport)
712 +add_subdirectory(libwww_transport)
713 +add_subdirectory(wininet_transport)
715 +if(NOT ENABLE_LIBXML2_BACKEND)
716 + add_subdirectory(expat)
717 +endif(NOT ENABLE_LIBXML2_BACKEND)
718 diff --git a/lib/abyss/CMakeLists.txt b/lib/abyss/CMakeLists.txt
720 index 0000000..2358061
722 +++ b/lib/abyss/CMakeLists.txt
727 diff --git a/lib/abyss/src/CMakeLists.txt b/lib/abyss/src/CMakeLists.txt
729 index 0000000..b1813bb
731 +++ b/lib/abyss/src/CMakeLists.txt
735 +set(xmlrpc_abyss_SOURCES
768 +add_definitions(-D_UNIX)
771 + list(APPEND xmlrpc_abyss_SOURCES thread_windows.c)
773 + list(APPEND xmlrpc_abyss_SOURCES socket_unix.c socket_unix.h)
775 + if(ENABLE_ABYSS_THREADS)
776 + list(APPEND xmlrpc_abyss_SOURCES thread_pthread.c)
777 + else(ENABLE_ABYSS_THREADS)
778 + list(APPEND xmlrpc_abyss_SOURCES thread_fork.c)
779 + endif(ENABLE_ABYSS_THREADS)
782 +add_library(xmlrpc_abyss SHARED ${xmlrpc_abyss_SOURCES})
783 +target_link_libraries(xmlrpc_abyss xmlrpc_util)
785 +if(ENABLE_ABYSS_THREADS)
786 + set_target_properties(xmlrpc_abyss PROPERTIES DEFINE_SYMBOL _THREAD)
787 + target_link_libraries(xmlrpc_abyss ${THREAD_LIBS})
788 + ensc_pkgconfig_lib(xmlrpc_abyss "${THREAD_LIBS_PKGCONFIG}")
789 +endif(ENABLE_ABYSS_THREADS)
791 +install(TARGETS xmlrpc_abyss
792 + RUNTIME DESTINATION ${_bin}
793 + LIBRARY DESTINATION ${_lib}
794 + ARCHIVE DESTINATION ${_lib})
796 +set_target_properties(xmlrpc_abyss
798 + LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
799 + VERSION ${XMLRPC_C_LIBVERSION}
800 + SOVERSION ${XMLRPC_C_SOVERSION})
802 +ensc_pkgconfig(xmlrpc_abyss)
803 diff --git a/lib/abyss/src/xmlrpc_abyss.pc.cmake b/lib/abyss/src/xmlrpc_abyss.pc.cmake
805 index 0000000..b0dbcc9
807 +++ b/lib/abyss/src/xmlrpc_abyss.pc.cmake
812 +includedir=@includedir@
815 +Description: XMLRPC Abyss base library
816 +Version: @XMLRPC_C_VERSION@
818 +Requires.private: xmlrpc_util
819 +Libs: -L${libdir} -lxmlrpc_abyss @xmlrpc_abyss_pkgconfig_libs@
821 diff --git a/lib/curl_transport/CMakeLists.txt b/lib/curl_transport/CMakeLists.txt
823 index 0000000..4224a13
825 +++ b/lib/curl_transport/CMakeLists.txt
829 +if(MUST_BUILD_CURL_CLIENT)
830 + list(APPEND transport_SOURCES
831 + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c
833 + ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.c
834 + ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.h
836 + ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.c
837 + ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.h
839 + ${CMAKE_CURRENT_SOURCE_DIR}/lock.h
841 + ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.c
842 + ${CMAKE_CURRENT_SOURCE_DIR}/lock_pthread.h
844 + ${CMAKE_CURRENT_SOURCE_DIR}/curlversion.h
846 +endif(MUST_BUILD_CURL_CLIENT)
847 diff --git a/lib/expat/CMakeLists.txt b/lib/expat/CMakeLists.txt
849 index 0000000..7397f52
851 +++ b/lib/expat/CMakeLists.txt
856 +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/xmltok)
858 +add_subdirectory(gennmtab)
859 +add_subdirectory(xmlparse)
860 +add_subdirectory(xmltok)
861 +add_subdirectory(xmlwf)
862 diff --git a/lib/expat/gennmtab/CMakeLists.txt b/lib/expat/gennmtab/CMakeLists.txt
864 index 0000000..48a44da
866 +++ b/lib/expat/gennmtab/CMakeLists.txt
870 +ADD_EXECUTABLE(gennmtab gennmtab.c)
871 diff --git a/lib/expat/xmlparse/CMakeLists.txt b/lib/expat/xmlparse/CMakeLists.txt
873 index 0000000..f87008a
875 +++ b/lib/expat/xmlparse/CMakeLists.txt
879 +add_library(xmlrpc_xmlparse STATIC
881 +target_link_libraries(xmlrpc_xmlparse xmlrpc_xmltok)
883 +ensc_pkgconfig(xmlrpc_xmlparse)
884 diff --git a/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
886 index 0000000..5b2a7e4
888 +++ b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake
893 +includedir=@includedir@
895 +Name: xmlrpc_xmlparse
896 +Description: XMLRPC xmlparse library
897 +Version: @XMLRPC_C_VERSION@
899 +Requires.private: xmlrpc_xmltok
900 +Libs: -L${libdir} -lxmlrpc_xmlparse
902 diff --git a/lib/expat/xmltok/CMakeLists.txt b/lib/expat/xmltok/CMakeLists.txt
904 index 0000000..42406fb
906 +++ b/lib/expat/xmltok/CMakeLists.txt
910 +include_directories(${CMAKE_CURRENT_BINARY_DIR})
912 +add_definitions(-DXML_BYTE_ORDER=0)
914 +add_library(xmlrpc_xmltok STATIC
915 + xmltok.c xmlrole.c xmltok_impl.c
916 + ${CMAKE_CURRENT_BINARY_DIR}/nametab.h)
918 +set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/nametab.h
920 + OBJECT_DEPENDS gennmtab
924 +get_target_property(GENNMTAB_EXECUTABLE gennmtab LOCATION)
926 + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nametab.h
927 + COMMAND ${GENNMTAB_EXECUTABLE} >nametab.h || { rm -f nametab.h\; false\; }
930 +ensc_pkgconfig(xmlrpc_xmltok)
931 diff --git a/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake
933 index 0000000..88e7ad8
935 +++ b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake
941 +Description: XMLRPC xmltok library
942 +Version: @XMLRPC_C_VERSION@
946 diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt
948 index 0000000..25ba487
950 +++ b/lib/libutil/CMakeLists.txt
954 +add_library(xmlrpc_util SHARED
966 +set_target_properties(xmlrpc_util
968 + LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
969 + VERSION ${XMLRPC_C_LIBVERSION}
970 + SOVERSION ${XMLRPC_C_SOVERSION})
972 +install(TARGETS xmlrpc_util
973 + RUNTIME DESTINATION ${_bin}
974 + LIBRARY DESTINATION ${_lib}
975 + ARCHIVE DESTINATION ${_lib})
977 +ensc_pkgconfig(xmlrpc_util)
978 diff --git a/lib/libutil/xmlrpc_util.pc.cmake b/lib/libutil/xmlrpc_util.pc.cmake
980 index 0000000..d4e01bf
982 +++ b/lib/libutil/xmlrpc_util.pc.cmake
986 +includedir=@includedir@
989 +Description: XMLRPC utility library
990 +Version: @XMLRPC_C_VERSION@
992 +Libs: -L${libdir} -lxmlrpc_util
993 +Cflags: -I${includedir}
994 diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt
996 index 0000000..aa52d9e
998 +++ b/lib/libwww_transport/CMakeLists.txt
1002 +if(MUST_BUILD_LIBWWW_CLIENT)
1003 + list(APPEND transport_SOURCES
1004 + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c
1005 + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.h)
1006 +endif(MUST_BUILD_LIBWWW_CLIENT)
1007 diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt
1008 new file mode 100644
1009 index 0000000..80696d9
1011 +++ b/lib/util/CMakeLists.txt
1018 + cmdline_parser_cpp.cpp
1026 + list(APPEND util_SOURCES pthreadx_win32.c)
1029 +add_library(util STATIC ${util_SOURCES})
1030 diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt
1031 new file mode 100644
1032 index 0000000..17535ab
1034 +++ b/lib/wininet_transport/CMakeLists.txt
1038 +if(MUST_BUILD_WININET_CLIENT)
1039 + list(APPEND transport_SOURCES
1040 + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c
1041 + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h)
1042 +endif(MUST_BUILD_WININET_CLIENT)
1043 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
1044 new file mode 100644
1045 index 0000000..f51e15b
1047 +++ b/src/CMakeLists.txt
1051 +if(ENABLE_LIBXML2_BACKEND)
1052 + set(xmlrpc_xml_parser xmlrpc_libxml2.c)
1053 + set(libxml_INCLUDES ${LIBXML2_CFLAGS})
1054 + set(libxml_LIBS ${LIBXML2_LDFLAGS})
1055 + set(xmlrpc_pkgconfig_req ${libxml_pkgconfig})
1056 +else(ENABLE_LIBXML2_BACKEND)
1057 + set(xmlrpc_xml_parser xmlrpc_expat.c)
1058 + set(libxml_INCLUDES -I${xmlrpc-c_SOURCE_DIR}/lib/expat/xmlparse)
1059 + set(libxml_LIBS xmlrpc_xmlparse)
1060 + set(xmlrpc_pkgconfig_req xmlrpc_xmlparse)
1061 +endif(ENABLE_LIBXML2_BACKEND)
1063 +if(MUST_BUILD_WININET_CLIENT)
1064 + set(client_wininet_CFLAGS "")
1065 + set(client_wininet_LIBS "${WININET_LDADD}" pthread)
1066 + list(APPEND transport_SOURCES
1067 + ${wininet_srcdir}/xmlrpc_wininet_transport.c ${wininet_srcdir}/xmlrpc_wininet_transport.h)
1068 +endif(MUST_BUILD_WININET_CLIENT)
1070 +if(MUST_BUILD_LIBWWW_CLIENT)
1071 + set(client_libwww_CFLAGS "${LIBWWW_CFLAGS}")
1072 + set(client_libwww_LIBS "${LIBWWW_LIBS}")
1073 + list(APPEND transport_SOURCES ${libwww_srcdir}/xmlrpc_libwww_transport.c ${libwww_srcdir}/xmlrpc_libwww_transport.h)
1074 +endif(MUST_BUILD_LIBWWW_CLIENT)
1076 +if(MUST_BUILD_CURL_CLIENT)
1077 + set(client_curl_CFLAGS ${CURL_CFLAGS})
1078 + set(client_curl_LIBS ${CURL_LDFLAGS} pthread)
1079 + set(xmlrpc_client_pkgconfig_req libcurl)
1080 + list(APPEND transport_SOURCES
1081 + ${curl_srcdir}/xmlrpc_curl_transport.c
1082 + ${curl_srcdir}/curltransaction.c
1083 + ${curl_srcdir}/curltransaction.h
1084 + ${curl_srcdir}/curlmulti.c
1085 + ${curl_srcdir}/curlmulti.h
1086 + ${curl_srcdir}/lock.h
1087 + ${curl_srcdir}/lock_pthread.c
1088 + ${curl_srcdir}/lock_pthread.h
1089 + ${curl_srcdir}/curlversion.h
1091 +endif(MUST_BUILD_CURL_CLIENT)
1093 +set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}")
1094 +set(client_LIBS ${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS})
1097 +add_subdirectory(cpp)
1102 +add_library(xmlrpc SHARED
1103 + double.c parse_datetime.c parse_value.c resource.c trace.c version.c
1105 + ${xmlrpc_xml_parser}
1106 + xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c
1107 + xmlrpc_array.c xmlrpc_struct.c
1108 + xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c
1109 + xmlrpc_authcookie.c)
1111 +set_target_properties(xmlrpc
1113 + COMPILE_FLAGS ${libxml_INCLUDES})
1115 +ensc_pkgconfig(xmlrpc)
1116 +target_link_libraries(xmlrpc ${libxml_LIBS} xmlrpc_util)
1117 +list(APPEND lib_TARGETS xmlrpc)
1119 +### libxmlrpc_client.so
1120 +add_library(xmlrpc_client SHARED
1121 + xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES})
1123 +target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS})
1124 +set_target_properties(xmlrpc_client
1126 + COMPILE_FLAGS "${client_CFLAGS}")
1127 +list(APPEND lib_TARGETS xmlrpc_client)
1128 +ensc_pkgconfig(xmlrpc_client)
1130 +### libxmlrpc_server.so
1131 +add_library(xmlrpc_server SHARED
1132 + registry.c method.c system_method.c)
1133 +target_link_libraries(xmlrpc_server xmlrpc)
1134 +list(APPEND lib_TARGETS xmlrpc_server)
1135 +ensc_pkgconfig(xmlrpc_server)
1138 +### libxmlrpc_server_abyss.so
1139 +if(ENABLE_ABYSS_SERVER)
1140 + add_library(xmlrpc_server_abyss SHARED
1141 + xmlrpc_server_abyss.c abyss_handler.c)
1142 + target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server)
1143 + list(APPEND lib_TARGETS xmlrpc_server_abyss)
1144 + ensc_pkgconfig(xmlrpc_server_abyss)
1145 +endif(ENABLE_ABYSS_SERVER)
1149 +### libxmlrpc_server_cgi.so
1150 +if(ENABLE_CGI_SERVER)
1151 + add_library(xmlrpc_server_cgi SHARED
1152 + xmlrpc_server_cgi)
1153 + target_link_libraries(xmlrpc_server_cgi xmlrpc_server)
1154 + list(APPEND lib_TARGETS xmlrpc_server_cgi)
1155 + ensc_pkgconfig(xmlrpc_server_cgi)
1156 +endif(ENABLE_CGI_SERVER)
1158 +install(TARGETS ${lib_TARGETS}
1159 + RUNTIME DESTINATION ${_bin}
1160 + LIBRARY DESTINATION ${_lib})
1162 +set_target_properties(${lib_TARGETS}
1164 + LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
1165 + VERSION ${XMLRPC_C_LIBVERSION}
1166 + SOVERSION ${XMLRPC_C_SOVERSION})
1170 diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
1171 new file mode 100644
1172 index 0000000..3171156
1174 +++ b/src/cpp/CMakeLists.txt
1178 +####### libxmlrpc++.so
1179 +add_library(xmlrpc++ SHARED
1180 + base64.cpp env_wrap.cpp fault.cpp girerr.cpp girmem.cpp
1181 + outcome.cpp param_list.cpp value.cpp xml.cpp)
1182 +target_link_libraries(xmlrpc++ xmlrpc pthread)
1183 +list(APPEND lib_TARGETS xmlrpc++)
1184 +ensc_pkgconfig(xmlrpc++)
1186 +####### libxmlrpc_cpp.so
1187 +add_library(xmlrpc_cpp SHARED XmlRpcCpp)
1188 +target_link_libraries(xmlrpc_cpp xmlrpc xmlrpc_server xmlrpc_client)
1189 +list(APPEND lib_TARGETS xmlrpc_cpp)
1190 +ensc_pkgconfig(xmlrpc_cpp)
1192 +####### libxmlrpc_server++.so
1193 +add_library(xmlrpc_server++ SHARED registry.cpp)
1194 +target_link_libraries(xmlrpc_server++ xmlrpc++ xmlrpc_server)
1195 +list(APPEND lib_TARGETS xmlrpc_server++)
1196 +ensc_pkgconfig(xmlrpc_server++)
1198 +####### libxmlrpc_server_abyss++.so
1199 +if(ENABLE_ABYSS_SERVER)
1200 + add_library(xmlrpc_server_abyss++ SHARED server_abyss.cpp)
1201 + target_link_libraries(xmlrpc_server_abyss++ xmlrpc_server++ xmlrpc_server_abyss)
1202 + list(APPEND lib_TARGETS xmlrpc_server_abyss++)
1203 + ensc_pkgconfig(xmlrpc_server_abyss++)
1204 +endif(ENABLE_ABYSS_SERVER)
1206 +####### libxmlrpc_server_cgi++.so
1207 +if(ENABLE_CGI_SERVER)
1208 + add_library(xmlrpc_server_cgi++ SHARED server_cgi.cpp)
1209 + target_link_libraries(xmlrpc_server_cgi++ xmlrpc_server++)
1210 + list(APPEND lib_TARGETS xmlrpc_server_cgi++)
1211 + ensc_pkgconfig(xmlrpc_server_cgi++)
1212 +endif(ENABLE_CGI_SERVER)
1214 +####### libxmlrpc_server_pstream++.so
1215 +add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp server_pstream_conn)
1216 +target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket)
1217 +list(APPEND lib_TARGETS xmlrpc_server_pstream++)
1218 +ensc_pkgconfig(xmlrpc_server_pstream++)
1220 +####### libxmlrpc_packetsocket.so
1221 +add_library(xmlrpc_packetsocket SHARED packetsocket.cpp)
1222 +target_link_libraries(xmlrpc_packetsocket xmlrpc++)
1223 +list(APPEND lib_TARGETS xmlrpc_packetsocket)
1224 +ensc_pkgconfig(xmlrpc_packetsocket)
1226 +####### libxmlrpc_client++.so
1227 +add_library(xmlrpc_client++ SHARED
1228 + client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp pstream.cpp)
1229 +set_target_properties(xmlrpc_client++
1231 + COMPILE_FLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir}")
1232 +target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client xmlrpc_packetsocket)
1233 +list(APPEND lib_TARGETS xmlrpc_client++)
1234 +ensc_pkgconfig(xmlrpc_client++)
1237 +install(TARGETS ${lib_TARGETS}
1238 + RUNTIME DESTINATION ${_bin}
1239 + LIBRARY DESTINATION ${_lib})
1241 +set_target_properties(${lib_TARGETS}
1243 + LINK_FLAGS ${XMLRPC_LINKER_FLAGS}
1244 + VERSION ${XMLRPC_CXX_LIBVERSION}
1245 + SOVERSION ${XMLRPC_CXX_SOVERSION})
1246 diff --git a/src/cpp/test/CMakeLists.txt b/src/cpp/test/CMakeLists.txt
1247 new file mode 100644
1248 index 0000000..dffd36c
1250 +++ b/src/cpp/test/CMakeLists.txt
1255 + test.cpp base64.cpp registry.cpp server_abyss.cpp
1256 + server_pstream.cpp tools.cpp value.cpp xml.cpp )
1258 +if(MUST_BUILD_CLIENT)
1259 + list(APPEND test_SOURCES testclient.cpp)
1260 + list(APPEND test_LIBS xmlrpc_client++)
1261 +else(MUST_BUILD_CLIENT)
1262 + list(APPEND test_SOURCES testclient_dummy.c)
1263 +endif(MUST_BUILD_CLIENT)
1265 +add_executable(src-test ${test_SOURCES})
1266 +target_link_libraries(src-test xmlrpc_server_abyss++ util ${test_LIBS})
1269 +add_test(runtests src-test)
1270 diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake
1271 new file mode 100644
1272 index 0000000..e99d81e
1274 +++ b/src/cpp/xmlrpc++.pc.cmake
1279 +includedir=@includedir@
1282 +Description: XMLRPC C++ Base library
1283 +Version: @XMLRPC_C_VERSION@
1285 +Requires.private: xmlrpc xmlrpc_util
1286 +Libs: -L${libdir} -lxmlrpc++
1287 +Cflags: -I${includedir}
1288 diff --git a/src/cpp/xmlrpc_client++.pc.cmake b/src/cpp/xmlrpc_client++.pc.cmake
1289 new file mode 100644
1290 index 0000000..fe1f835
1292 +++ b/src/cpp/xmlrpc_client++.pc.cmake
1297 +includedir=@includedir@
1299 +Name: xmlrpc_client++
1300 +Description: XMLRPC C++ Client library
1301 +Version: @XMLRPC_C_VERSION@
1303 +Requires.private: xmlrpc++ xmlrpc_client xmlrpc_packetsocket xmlrpc xmlrpc_util
1304 +Libs: -L${libdir} -lxmlrpc_client++
1305 +Cflags: -I${includedir}
1306 diff --git a/src/cpp/xmlrpc_cpp.pc.cmake b/src/cpp/xmlrpc_cpp.pc.cmake
1307 new file mode 100644
1308 index 0000000..9f94252
1310 +++ b/src/cpp/xmlrpc_cpp.pc.cmake
1315 +includedir=@includedir@
1318 +Description: XMLRPC CPP library
1319 +Version: @XMLRPC_C_VERSION@
1321 +Requires.private: xmlrpc xmlrpc_server xmlrpc_util
1322 +Libs: -L${libdir} -lxmlrpc_cpp
1323 +Cflags: -I${includedir}
1324 diff --git a/src/cpp/xmlrpc_packetsocket.pc.cmake b/src/cpp/xmlrpc_packetsocket.pc.cmake
1325 new file mode 100644
1326 index 0000000..e168da3
1328 +++ b/src/cpp/xmlrpc_packetsocket.pc.cmake
1333 +includedir=@includedir@
1335 +Name: xmlrpc_packetsocket
1336 +Description: XMLRPC C++ packsetsocket library
1337 +Version: @XMLRPC_C_VERSION@
1339 +Requires.private: xmlrpc++
1340 +Libs: -L${libdir} -lxmlrpc_packetsocket
1341 +Cflags: -I${includedir}
1342 diff --git a/src/cpp/xmlrpc_server++.pc.cmake b/src/cpp/xmlrpc_server++.pc.cmake
1343 new file mode 100644
1344 index 0000000..5080b63
1346 +++ b/src/cpp/xmlrpc_server++.pc.cmake
1351 +includedir=@includedir@
1353 +Name: xmlrpc_server++
1354 +Description: XMLRPC C++ Server library
1355 +Version: @XMLRPC_C_VERSION@
1357 +Requires.private: xmlrpc++ xmlrpc_server xmlrpc xmlrpc_util
1358 +Libs: -L${libdir} -lxmlrpc_server++
1359 +Cflags: -I${includedir}
1360 diff --git a/src/cpp/xmlrpc_server_abyss++.pc.cmake b/src/cpp/xmlrpc_server_abyss++.pc.cmake
1361 new file mode 100644
1362 index 0000000..f1d2198
1364 +++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake
1369 +includedir=@includedir@
1371 +Name: xmlrpc_server_abyss++
1372 +Description: XMLRPC C++ Abyss-Server library
1373 +Version: @XMLRPC_C_VERSION@
1375 +Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util
1376 +Libs: -L${libdir} -lxmlrpc_server_abyss++
1377 +Cflags: -I${includedir}
1378 diff --git a/src/cpp/xmlrpc_server_cgi++.pc.cmake b/src/cpp/xmlrpc_server_cgi++.pc.cmake
1379 new file mode 100644
1380 index 0000000..9021564
1382 +++ b/src/cpp/xmlrpc_server_cgi++.pc.cmake
1387 +includedir=@includedir@
1389 +Name: xmlrpc_server_cgi++
1390 +Description: XMLRPC C++ CGI-Server library
1391 +Version: @XMLRPC_C_VERSION@
1393 +Requires.private: xmlrpc_server++ xmlrpc++ xmlrpc
1394 +Libs: -L${libdir} -lxmlrpc_server_cgi++
1395 +Cflags: -I${includedir}
1396 diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake
1397 new file mode 100644
1398 index 0000000..9b4819f
1400 +++ b/src/cpp/xmlrpc_server_pstream++.pc.cmake
1405 +includedir=@includedir@
1407 +Name: xmlrpc_server_pstream++
1408 +Description: XMLRPC C++ pstream-Server library
1409 +Version: @XMLRPC_C_VERSION@
1411 +Requires.private: xmlrpc_server++ xmlrpc_packetsocket xmlrpc++
1412 +Libs: -L${libdir} -lxmlrpc_server_pstream++
1413 +Cflags: -I${includedir}
1414 diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake
1415 new file mode 100644
1416 index 0000000..7c098b8
1418 +++ b/src/xmlrpc.pc.cmake
1423 +includedir=@includedir@
1426 +Description: XMLRPC base library
1427 +Version: @XMLRPC_C_VERSION@
1429 +Requires.private: @xmlrpc_pkgconfig_req@ xmlrpc_util
1430 +Libs: -L${libdir} -lxmlrpc @xmlrpc_pkgconfig_libs@
1431 +Cflags: -I${includedir}
1432 diff --git a/src/xmlrpc_client.pc.cmake b/src/xmlrpc_client.pc.cmake
1433 new file mode 100644
1434 index 0000000..61543d4
1436 +++ b/src/xmlrpc_client.pc.cmake
1441 +includedir=@includedir@
1443 +Name: xmlrpc_client
1444 +Description: XMLRPC client library
1445 +Version: @XMLRPC_C_VERSION@
1447 +Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ xmlrpc_util
1448 +Libs: -L${libdir} -lxmlrpc_client @client_libwww_LIBS@ @client_wininet_LIBS@
1449 +Cflags: -I${includedir}
1450 diff --git a/src/xmlrpc_server.pc.cmake b/src/xmlrpc_server.pc.cmake
1451 new file mode 100644
1452 index 0000000..cade53d
1454 +++ b/src/xmlrpc_server.pc.cmake
1459 +includedir=@includedir@
1461 +Name: xmlrpc_server
1462 +Description: XMLRPC Server library
1463 +Version: @XMLRPC_C_VERSION@
1465 +Requires.private: xmlrpc xmlrpc_util
1466 +Libs: -L${libdir} -lxmlrpc_server
1467 +Cflags: -I${includedir}
1468 diff --git a/src/xmlrpc_server_abyss.pc.cmake b/src/xmlrpc_server_abyss.pc.cmake
1469 new file mode 100644
1470 index 0000000..198c780
1472 +++ b/src/xmlrpc_server_abyss.pc.cmake
1477 +includedir=@includedir@
1479 +Name: xmlrpc_server_abyss
1480 +Description: XMLRPC Server Abyss library
1481 +Version: @XMLRPC_C_VERSION@
1483 +Requires.private: xmlrpc_server xmlrpc_abyss xmlrpc xmlrpc_util
1484 +Libs: -L${libdir} -lxmlrpc_server_abyss
1485 +Cflags: -I${includedir}
1486 diff --git a/src/xmlrpc_server_cgi.pc.cmake b/src/xmlrpc_server_cgi.pc.cmake
1487 new file mode 100644
1488 index 0000000..748b550
1490 +++ b/src/xmlrpc_server_cgi.pc.cmake
1495 +includedir=@includedir@
1497 +Name: xmlrpc_server_cgi
1498 +Description: XMLRPC CGI-Server library
1499 +Version: @XMLRPC_C_VERSION@
1501 +Requires.private: xmlrpc_server xmlrpc xmlrpc_util
1502 +Libs: -L${libdir} -lxmlrpc_server_cgi
1503 +Cflags: -I${includedir}
1504 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
1505 new file mode 100644
1506 index 0000000..e712382
1508 +++ b/test/CMakeLists.txt
1528 +if(MUST_BUILD_CLIENT)
1529 + list(APPEND test_SOURCES client.c)
1530 + list(APPEND test_LIBS xmlrpc_client)
1531 +else(MUST_BUILD_CLIENT)
1532 + list(APPEND test_SOURCES client_dummy.c)
1533 +endif(MUST_BUILD_CLIENT)
1536 +add_executable(src-test ${test_SOURCES})
1537 +target_link_libraries(src-test xmlrpc_server_abyss util ${test_LIBS})
1539 +add_executable(src-cgitest1 cgitest1.c testtool.c testtool.h)
1540 +target_link_libraries(src-cgitest1 xmlrpc_server_cgi)
1542 +add_custom_command(TARGET src-test
1544 + COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/data
1545 + COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR})
1548 +add_test(runtests src-test)
1550 +add_subdirectory(cpp)
1551 diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt
1552 new file mode 100644
1553 index 0000000..15a7c3a
1555 +++ b/test/cpp/CMakeLists.txt
1559 +set(testcpp_SOURCES
1564 + server_pstream.cpp
1569 +if(MUST_BUILD_CLIENT)
1570 + list(APPEND testcpp_SOURCES testclient.cpp)
1571 + list(APPEND testcpp_LIBS xmlrpc_client++)
1572 +else(MUST_BUILD_CLIENT)
1573 + list(APPEND testcpp_SOURCES testclient_dummy.c)
1574 +endif(MUST_BUILD_CLIENT)
1577 + list(APPEND testcpp_SOURCES ${CMAKE_SOURCE_DIR}/Windows/socketpair.cpp)
1578 +endif(DEFINED MSVCRT)
1580 +add_executable(src-testcpp ${testcpp_SOURCES})
1581 +target_link_libraries(src-testcpp
1584 + xmlrpc_server_abyss++
1585 + xmlrpc_server_pstream++
1587 + util ${testcpp_LIBS})
1590 +add_test(runtests src-testcpp)
1591 diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
1592 new file mode 100644
1593 index 0000000..cd2a6d7
1595 +++ b/tools/CMakeLists.txt
1599 +add_subdirectory(lib)
1600 +add_subdirectory(binmode-rpc-kit)
1601 +add_subdirectory(turbocharger)
1602 +add_subdirectory(xml)
1604 +if (MUST_BUILD_CLIENT)
1605 + add_subdirectory(xmlrpc)
1606 + add_subdirectory(xmlrpc_transport)
1609 + if (ENABLE_CPLUSPLUS)
1610 + add_subdirectory(xml-rpc-api2cpp)
1611 + add_subdirectory(xml-rpc-api2txt)
1612 + add_subdirectory(xmlrpc_cpp_proxy)
1614 + if (BUILD_XMLRPC_PSTREAM AND ENABLE_CGI_SERVER)
1615 + add_subdirectory(xmlrpc_pstream)
1619 diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt
1620 new file mode 100644
1621 index 0000000..342423d
1623 +++ b/tools/binmode-rpc-kit/CMakeLists.txt
1626 diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
1627 new file mode 100644
1628 index 0000000..342423d
1630 +++ b/tools/lib/CMakeLists.txt
1633 diff --git a/tools/turbocharger/CMakeLists.txt b/tools/turbocharger/CMakeLists.txt
1634 new file mode 100644
1635 index 0000000..342423d
1637 +++ b/tools/turbocharger/CMakeLists.txt
1640 diff --git a/tools/xml-rpc-api2cpp/CMakeLists.txt b/tools/xml-rpc-api2cpp/CMakeLists.txt
1641 new file mode 100644
1642 index 0000000..1e9134a
1644 +++ b/tools/xml-rpc-api2cpp/CMakeLists.txt
1648 +add_executable(xml-rpc-api2cpp
1649 + xml-rpc-api2cpp.cpp
1651 + XmlRpcFunction.cpp
1654 +target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client)
1656 +install(TARGETS xml-rpc-api2cpp
1657 + RUNTIME DESTINATION bin)
1659 +install(FILES xml-rpc-api2cpp.1
1660 + DESTINATION ${mandir}/man1)
1661 diff --git a/tools/xml-rpc-api2txt/CMakeLists.txt b/tools/xml-rpc-api2txt/CMakeLists.txt
1662 new file mode 100644
1663 index 0000000..5b01824
1665 +++ b/tools/xml-rpc-api2txt/CMakeLists.txt
1669 +install(PROGRAMS xml-rpc-api2txt
1670 + DESTINATION ${bindir})
1672 +install(FILES xml-rpc-api2txt.1
1673 + DESTINATION ${mandir}/man1)
1674 diff --git a/tools/xml/CMakeLists.txt b/tools/xml/CMakeLists.txt
1675 new file mode 100644
1676 index 0000000..0bab80c
1678 +++ b/tools/xml/CMakeLists.txt
1682 +add_executable(xmlrpc_parsecall
1683 + xmlrpc_parsecall.c
1684 + ../lib/dumpvalue.c)
1686 +target_link_libraries(xmlrpc_parsecall
1690 +install(TARGETS xmlrpc_parsecall
1691 + DESTINATION ${_bin})
1693 +include_directories(../lib/include)
1695 +ensc_set_link_exe_flags(xmlrpc_parsecall)
1696 diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt
1697 new file mode 100644
1698 index 0000000..da01ec3
1700 +++ b/tools/xmlrpc/CMakeLists.txt
1704 +#set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ../lib/include)
1706 +include_directories(../lib/include)
1707 +add_executable(tool-xmlrpc
1709 + ../lib/dumpvalue.c)
1710 +target_link_libraries(tool-xmlrpc xmlrpc_client util)
1712 +set_target_properties(tool-xmlrpc
1713 + PROPERTIES OUTPUT_NAME xmlrpc)
1715 +install(TARGETS tool-xmlrpc
1716 + DESTINATION ${_bin})
1718 +ensc_set_link_exe_flags(tool-xmlrpc)
1719 diff --git a/tools/xmlrpc/config.h b/tools/xmlrpc/config.h
1720 new file mode 100644
1721 index 0000000..7409aed
1723 +++ b/tools/xmlrpc/config.h
1725 +#include <xmlrpc_config.h>
1726 diff --git a/tools/xmlrpc_cpp_proxy/CMakeLists.txt b/tools/xmlrpc_cpp_proxy/CMakeLists.txt
1727 new file mode 100644
1728 index 0000000..4166023
1730 +++ b/tools/xmlrpc_cpp_proxy/CMakeLists.txt
1734 +add_executable(xmlrpc_cpp_proxy
1743 + xmlrpc_cpp_proxy.cpp
1745 +target_link_libraries(xmlrpc_cpp_proxy xmlrpc_client++)
1747 +install(TARGETS xmlrpc_cpp_proxy
1748 + RUNTIME DESTINATION bin)
1749 diff --git a/tools/xmlrpc_pstream/CMakeLists.txt b/tools/xmlrpc_pstream/CMakeLists.txt
1750 new file mode 100644
1751 index 0000000..b277bc8
1753 +++ b/tools/xmlrpc_pstream/CMakeLists.txt
1757 +add_executable(xmlrpc_pstream
1758 + xmlrpc_pstream.cpp
1759 + ../lib/dumpvalue.c)
1761 +target_link_libraries(xmlrpc_pstream
1763 + ${NCURSES_LIBRARIES}
1767 +include_directories(../lib/include)
1769 +install(TARGETS xmlrpc_pstream
1770 + RUNTIME DESTINATION bin)
1771 diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt
1772 new file mode 100644
1773 index 0000000..b73d7c0
1775 +++ b/tools/xmlrpc_transport/CMakeLists.txt
1779 +add_executable(xmlrpc_transport xmlrpc_transport.c)
1780 +target_link_libraries(xmlrpc_transport xmlrpc_client util)
1782 +install(TARGETS xmlrpc_transport
1783 + DESTINATION ${_bin})
1785 +ensc_set_link_exe_flags(xmlrpc_transport)
1786 diff --git a/tools/xmlrpc_transport/config.h b/tools/xmlrpc_transport/config.h
1787 new file mode 100644
1788 index 0000000..7409aed
1790 +++ b/tools/xmlrpc_transport/config.h
1792 +#include <xmlrpc_config.h>
1793 diff --git a/transport_config.h.cmake b/transport_config.h.cmake
1794 new file mode 100644
1795 index 0000000..1ec3cf6
1797 +++ b/transport_config.h.cmake
1800 +#define MUST_BUILD_WININET_CLIENT @_MUST_BUILD_WININET_CLIENT@
1801 +#define MUST_BUILD_LIBWWW_CLIENT @_MUST_BUILD_LIBWWW_CLIENT@
1802 +#define MUST_BUILD_CURL_CLIENT @_MUST_BUILD_CURL_CLIENT@
1804 +static char const * const XMLRPC_DEFAULT_TRANSPORT =
1805 +#if MUST_BUILD_LIBWWW_CLIENT
1807 +#elif MUST_BUILD_CURL_CLIENT
1809 +#elif MUST_BUILD_WININET_CLIENT
1812 +# error "no client XML transport configured"
1815 diff --git a/version.h.cmake b/version.h.cmake
1816 new file mode 100644
1817 index 0000000..0c964a3
1819 +++ b/version.h.cmake
1821 +/* This file was generated by a make rule */
1822 +#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@"
1823 +#define XMLRPC_VERSION_MAJOR @XMLRPC_C_VERSION_MAJOR_NUM@
1824 +#define XMLRPC_VERSION_MINOR @XMLRPC_C_VERSION_MINOR_NUM@
1825 +#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@
1826 diff --git a/xmlrpc-c-config b/xmlrpc-c-config
1827 new file mode 100755
1828 index 0000000..50577fd
1830 +++ b/xmlrpc-c-config
1846 +Usage: xmlrpc-c-config <feature> ... <option> ...
1849 + c++ legacy C++ wrapper API
1850 + c++2 modern C++ API
1851 + client client functions
1852 + cgi-server CGI-based server functions
1853 + abyss-server ABYSS-based server functions
1854 + pstream-server pstream-based server functions
1855 + server-util basic server functions (implied by *-server)
1858 + --version The version number of the package
1859 + --features List all features (aka modules) currently installed
1860 + --cflags C compiler flags to use when '#include'ing package headers
1861 + --libs Libraries and flags to use when linking programs normally
1862 + --ldadd Libraries to use with automake
1863 + --ldflags Flags to use with automake & libtool
1864 + --prefix The prefix under which the package was installed
1869 +test $# -ne 0 || show_help 1 >&2
1871 +while test $# -gt 0; do
1873 + (c++) comp="$comp xmlrpc_cpp";;
1874 + (server-util) need_server=1;;
1875 + (cgi-server) need_cgi=1;;
1876 + (c++2) need_cxx=1;;
1877 + (abyss-server) need_abyss=1;;
1878 + (pstream-server) need_pstream=1;;
1879 + (packetsocket) need_packetsocket=1;;
1880 + (client|libwww-client) need_client=1;;
1881 + (--help) show_help 0;;
1882 + (--) shift; break;;
1885 + echo "Unrecognized token '$1'"
1892 +if test -z "$need_cxx"; then
1893 + test -z "$need_client" || comp="$comp xmlrpc_client"
1894 + test -z "$need_abyss" || comp="$comp xmlrpc_server_abyss"
1895 + test -z "$need_server" || comp="$comp xmlrpc_server"
1896 + test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi"
1898 + test -z "$need_client" || comp="$comp xmlrpc_client++"
1899 + test -z "$need_abyss" || comp="$comp xmlrpc_server_abyss++"
1900 + test -z "$need_server" || comp="$comp xmlrpc_server++"
1901 + test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi++"
1904 +test -z "$need_pstream" || comp="$comp xmlrpc_server_pstream++"
1905 +test -z "$need_packetsocket" || comp="$comp xmlrpc_packetsocket"
1906 +test -n "$comp" || comp="xmlrpc xmlrpc_util"
1909 + (--features|--modules)
1910 + echo "c++ abyss-server curl-client"
1915 + set -- --modversion
1919 + set -- --variable=prefix
1923 + set -- --variable=${1##--}
1926 + set -- --libs-only-L
1929 + set -- --libs-only-l
1936 +exec pkg-config "$@" $comp
1937 diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake
1938 new file mode 100644
1939 index 0000000..9eff724
1941 +++ b/xmlrpc_config.h.cmake
1945 +#ifndef H_XMLRPC_C_CONFIG_H
1947 +#define HAVE_SYS_IOCTL_H 0@HAVE_SYS_IOCTL_H@
1948 +#define HAVE_SYS_SELECT_H_DEFINE 0@HAVE_SYS_IOCTL_H@
1950 +#define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@
1951 +#define XMLRPC_HAVE_WCHAR @XMLRPC_HAVE_WCHAR@
1952 +#define ATTR_UNUSED @ATTR_UNUSED@
1953 +#define DIRECTORY_SEPARATOR "@DIRECTORY_SEPARATOR@"
1955 +#cmakedefine HAVE_SYS_SELECT_H 1
1956 +#cmakedefine HAVE_WCHAR_H 1
1957 +#cmakedefine HAVE_SETENV 1
1958 +#cmakedefine HAVE_STRCASECMP 1
1959 +#cmakedefine HAVE__STRICMP 1
1960 +#cmakedefine HAVE_STRICMP 1
1961 +#cmakedefine HAVE_GETTIMEOFDAY 1
1962 +#cmakedefine HAVE_SETGROUPS 1
1963 +#cmakedefine HAVE_ASPRINTF 1
1964 +#cmakedefine HAVE_PSELECT 1
1965 +#cmakedefine HAVE_WCSNCMP 1
1966 +#cmakedefine HAVE_LOCALTIME_R 1
1967 +#cmakedefine HAVE_GMTIME_R 1
1968 +#cmakedefine HAVE_STRTOLL 1
1969 +#cmakedefine HAVE___STRTOLL 1
1970 +#cmakedefine HAVE_STRTOULL 1
1971 +#cmakedefine HAVE___STRTOULL 1
1972 +#cmakedefine HAVE_STRTOQ 1
1973 +#cmakedefine HAVE_STRTOUQ 1
1975 +#define HAVE_UNICODE_WCHAR HAVE_WCHAR_H
1977 +/* Xmlrpc-c code uses __inline__ to declare functions that should
1978 + be compiled as inline code. GNU C recognizes the __inline__ keyword.
1979 + Others recognize 'inline' or '__inline' or nothing at all to say
1980 + a function should be inlined.
1982 + We could make 'configure' simply do a trial compile to figure out
1983 + which one, but for now, this approximation is easier:
1985 +#if (!defined(__GNUC__))
1986 + #if (!defined(__inline__))
1987 + #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER))
1988 + #define __inline__ __inline
1990 + #define __inline__
1995 +/* MSVCRT means we're using the Microsoft Visual C++ runtime library */
1997 +#if defined(_MSC_VER)
1998 + /* The compiler is Microsoft Visual C++ */
1999 + #define MSVCRT _MSC_VER
2000 +#elif defined(__MINGW32__)
2001 + /* The compiler is Mingw, which is the Windows version of the GNU
2002 + compiler. Programs built with this normally use the Microsoft Visual
2003 + C++ runtime library.
2011 + /* The MSVC runtime library _does_ have a 'struct timeval', but it is
2012 + part of the Winsock interface (along with select(), which is probably
2013 + its intended use), so isn't intended for use for general timekeeping.
2015 + #define HAVE_TIMEVAL 0
2016 + #define HAVE_TIMESPEC 0
2018 + #define HAVE_TIMEVAL 1
2019 + /* timespec is Posix.1b. If we need to work on a non-Posix.1b non-Windows
2020 + system, we'll have to figure out how to make Configure determine this.
2022 + #define HAVE_TIMESPEC 1
2026 + #define HAVE_WINDOWS_THREAD 1
2028 + #define HAVE_WINDOWS_THREAD 0
2031 +#define HAVE_PTHREAD 1
2033 +/* Note that the return value of XMLRPC_VSNPRINTF is int on Windows,
2037 + #define XMLRPC_VSNPRINTF _vsnprintf
2039 + #define XMLRPC_VSNPRINTF vsnprintf
2043 + #define HAVE_REGEX 0
2045 + #define HAVE_REGEX 1
2049 + #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair
2050 + #define XMLRPC_CLOSESOCKET closesocket
2052 + #define XMLRPC_SOCKETPAIR socketpair
2053 + #define XMLRPC_CLOSESOCKET close
2056 +#if defined(_MSC_VER) && (_MSC_VER >= 1400)
2057 +/* Starting with MSVC 8, the runtime library defines various POSIX functions
2058 + such as strdup() whose names violate the ISO C standard (the standard
2059 + says the strXXX names are reserved for the standard), but warns you of
2060 + the standards violation. That warning is 4996, along with other warnings
2061 + that tell you you're using a function that Microsoft thinks you
2064 + Well, POSIX is more important than that element of ISO C, so we disable
2067 + FYI, msvcrt also defines _strdup(), etc, which doesn't violate the
2068 + naming standard. But since other environments don't define _strdup(),
2069 + we can't use it in portable code.
2071 +#pragma warning(disable:4996)
2075 + # define XMLRPC_STRTOLL strtoll
2077 + # define XMLRPC_STRTOLL strtoq /* Interix */
2078 +#elif HAVE___STRTOLL
2079 + # define XMLRPC_STRTOLL __strtoll /* HP-UX <= 11.11 */
2080 +#elif HAVE__STRTOUI64
2081 + #define XMLRPC_STRTOLL _strtoui64 /* Windows MSVC */
2085 + # define XMLRPC_STRTOULL strtoull
2087 + # define XMLRPC_STRTOULL strtouq /* Interix */
2088 +#elif HAVE___STRTOULL
2089 + # define XMLRPC_STRTOULL __strtoull /* HP-UX <= 11.11 */
2090 +#elif HAVE__STRTOUI64
2091 + #define XMLRPC_STRTOULL _strtoui64 /* Windows MSVC */
2095 + #define snprintf _snprintf
2096 + #define popen _popen
2099 +#define XMLRPC_INT64 int64_t
2100 +#define XMLRPC_PRId64 PRId64
2102 +/* S_IRUSR is POSIX, defined in <sys/stat.h> Some old BSD systems and Windows
2103 + systems have S_IREAD instead. Most Unix today (2011) has both. In 2011,
2104 + Android has S_IRUSR and not S_IREAD.
2106 + Some Windows has _S_IREAD.
2108 + We're ignoring S_IREAD now to see if anyone misses it. If there are still
2109 + users that need it, we can handle it here.
2112 + #define XMLRPC_S_IWUSR _S_IWRITE
2113 + #define XMLRPC_S_IRUSR _S_IREAD
2115 + #define XMLRPC_S_IWUSR S_IWUSR
2116 + #define XMLRPC_S_IRUSR S_IRUSR
2120 + #define XMLRPC_CHDIR _chdir
2122 + #define XMLRPC_CHDIR chdir