]>
Commit | Line | Data |
---|---|---|
91f35318 | 1 | From 26a4d5168bb69474c3cc304f90592d37bf0be8fe Mon Sep 17 00:00:00 2001 |
65007067 ER |
2 | From: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> |
3 | Date: Sat, 5 Apr 2008 10:55:02 +0200 | |
3671422b | 4 | Subject: [PATCH 1/8] make -> cmake transition |
65007067 | 5 | |
3671422b | 6 | cmake: updated |
65007067 ER |
7 | |
8 | diff --git a/CMakeLists.txt b/CMakeLists.txt | |
9 | new file mode 100644 | |
91f35318 | 10 | index 0000000..2876dea |
65007067 ER |
11 | --- /dev/null |
12 | +++ b/CMakeLists.txt | |
91f35318 | 13 | @@ -0,0 +1,290 @@ |
65007067 ER |
14 | +## -*- cmake -*- |
15 | +project(xmlrpc-c) | |
16 | +include(FindPkgConfig) | |
17 | +include(CheckIncludeFile) | |
18 | +include(CheckFunctionExists) | |
19 | + | |
3671422b JB |
20 | +cmake_minimum_required(VERSION 2.4) |
21 | + | |
22 | +if(COMMAND cmake_policy) | |
23 | + cmake_policy(SET CMP0003 NEW) | |
24 | +endif() | |
65007067 ER |
25 | + |
26 | + | |
27 | +set(XMLRPC_C_VERSION_MAJOR "1" CACHE STRING "Version (major) of xmlrpc-c") | |
6df01d66 JB |
28 | +set(XMLRPC_C_VERSION_MINOR "39" CACHE STRING "Version (minor) of xmlrpc-c") |
29 | +set(XMLRPC_C_VERSION_POINT "12" CACHE STRING "Version (point) of xmlrpc-c") | |
65007067 ER |
30 | + |
31 | +set(XMLRPC_C_VERSION | |
32 | + "${XMLRPC_C_VERSION_MAJOR}.${XMLRPC_C_VERSION_MINOR}.${XMLRPC_C_VERSION_POINT}" | |
33 | + CACHE STRING "Version of xmlrpc-c") | |
34 | + | |
35 | +set(XMLRPC_C_LIBVERSION "3.${XMLRPC_C_VERSION_MINOR}") | |
36 | +set(XMLRPC_C_SOVERSION "3") | |
37 | + | |
91f35318 JB |
38 | +set(XMLRPC_CXX_LIBVERSION "8.${XMLRPC_C_VERSION_MINOR}") |
39 | +set(XMLRPC_CXX_SOVERSION "8") | |
65007067 ER |
40 | + |
41 | +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MAJOR_NUM "${XMLRPC_C_VERSION_MAJOR}") | |
42 | +string(REGEX REPLACE "^0+" "" XMLRPC_C_VERSION_MINOR_NUM "${XMLRPC_C_VERSION_MINOR}") | |
3671422b | 43 | +string(REGEX REPLACE "^0+(.)" "\\1" XMLRPC_C_VERSION_POINT_NUM "${XMLRPC_C_VERSION_POINT}") |
65007067 ER |
44 | + |
45 | + | |
46 | +macro(ensc_set_bool NAME VALUE DESC) | |
47 | + set(${NAME} ${VALUE} CACHE BOOL ${DESC}) | |
48 | + if(${NAME}) | |
49 | + set(_${NAME} 1) | |
50 | + else(${NAME}) | |
51 | + set(_${NAME} 0) | |
52 | + endif(${NAME}) | |
53 | +endmacro(ensc_set_bool) | |
54 | + | |
55 | +macro(ensc_pkgconfig COMP) | |
56 | + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${COMP}.pc.cmake | |
57 | + ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc | |
58 | + @ONLY) | |
59 | + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMP}.pc | |
60 | + DESTINATION ${pkgconfdir}) | |
61 | +endmacro(ensc_pkgconfig) | |
62 | + | |
63 | +macro(ensc_pkgconfig_lib TARGET LIBS) | |
64 | + get_target_property(libtype ${TARGET} TYPE) | |
65 | + if("${libtype}" STREQUAL "STATIC_LIBRARY") | |
66 | + list(APPEND ${TARGET}_pkgconfig_libs "${LIBS}") | |
67 | + endif("${libtype}" STREQUAL "STATIC_LIBRARY") | |
68 | +endmacro(ensc_pkgconfig_lib) | |
69 | + | |
70 | +macro(ensc_set_link_exe_flags) | |
71 | + ## HACK: libwww has broken inter-lib dependencies and '-Wl,--as-needed' fails with it | |
72 | + if(NOT MUST_BUILD_LIBWWW_CLIENT) | |
73 | + set_target_properties(${ARGV} | |
74 | + PROPERTIES | |
75 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS}) | |
76 | + endif(NOT MUST_BUILD_LIBWWW_CLIENT) | |
77 | +endmacro(ensc_set_link_exe_flags) | |
78 | + | |
79 | +########### | |
80 | +if(WIN32) | |
81 | + find_program(WININET_CONFIG_EXECUTABLE wininet-config) | |
82 | + | |
83 | + if(DEFINED MUST_BUILD_WININET_CLIENT) | |
84 | + set(tmp ${MUST_BUILD_WININET_CLIENT}) | |
85 | + else(DEFINED MUST_BUILD_WININET_CLIENT) | |
86 | + if(WININET_CONFIG_EXECUTABLE) | |
87 | + set(tmp 1) | |
88 | + else(WININET_CONFIG_EXECUTABLE) | |
89 | + set(tmp 0) | |
90 | + endif(WININET_CONFIG_EXECUTABLE) | |
91 | + endif(DEFINED MUST_BUILD_WININET_CLIENT) | |
91f35318 JB |
92 | + |
93 | + set(MSVCRT yes) | |
65007067 ER |
94 | +else(WIN32) |
95 | + set(tmp 0) | |
96 | +endif(WIN32) | |
97 | + | |
98 | +if(tmp) | |
99 | + set(MUST_BUILD_CLIENT 1) | |
100 | + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE WININET_VERSION) | |
101 | + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE WININET_CFLAGS) | |
102 | + exec_program(${WININET_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE WININET_LDADD) | |
103 | + message(STATUS "Using WinInet ${WININET_VERSION} transport") | |
104 | +endif(tmp) | |
105 | + | |
106 | +ensc_set_bool(MUST_BUILD_WININET_CLIENT ${tmp} "Set iff WinInet client transport shall be built") | |
107 | +set(wininet_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/wininet_transport) | |
108 | + | |
109 | +########### | |
110 | +if(DEFINED MUST_BUILD_CURL_CLIENT) | |
111 | + set(tmp REQUIRED) | |
112 | +else(DEFINED MUST_BUILD_CURL_CLIENT) | |
113 | + set(tmp) | |
114 | +endif(DEFINED MUST_BUILD_CURL_CLIENT) | |
115 | + | |
116 | +pkg_check_modules(CURL ${tmp} libcurl) | |
117 | + | |
118 | +ensc_set_bool(MUST_BUILD_CURL_CLIENT ${CURL_FOUND} "Set iff Curl client transport shall be built") | |
119 | +set(curl_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/curl_transport) | |
120 | + | |
121 | +if(MUST_BUILD_CURL_CLIENT) | |
122 | + set(MUST_BUILD_CLIENT 1) | |
123 | +endif(MUST_BUILD_CURL_CLIENT) | |
124 | + | |
125 | +########### | |
126 | +find_program(LIBWWW_CONFIG_EXECUTABLE libwww-config) | |
127 | +if(DEFINED MUST_BUILD_LIBWWW_CLIENT) | |
128 | + set(tmp ${MUST_BUILD_LIBWWW_CLIENT}) | |
129 | +else(DEFINED MUST_BUILD_LIBWWW_CLIENT) | |
130 | + if(LIBWWW_CONFIG_EXECUTABLE) | |
131 | + set(tmp 1) | |
132 | + else(LIBWWW_CONFIG_EXECUTABLE) | |
133 | + set(tmp 0) | |
134 | + endif(LIBWWW_CONFIG_EXECUTABLE) | |
135 | +endif(DEFINED MUST_BUILD_LIBWWW_CLIENT) | |
136 | + | |
137 | +if(tmp) | |
138 | + set(MUST_BUILD_CLIENT 1) | |
139 | + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LIBWWW_VERSION) | |
140 | + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE LIBWWW_LIBS) | |
141 | + exec_program(${LIBWWW_CONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE LIBWWW_CFLAGS) | |
142 | + message(STATUS "Using libwww ${LIBWWW_VERSION} transport") | |
143 | +endif(tmp) | |
144 | +ensc_set_bool(MUST_BUILD_LIBWWW_CLIENT ${tmp} "Set iff LibWWW client transport shall be built") | |
145 | +set(libwww_srcdir ${xmlrpc-c_SOURCE_DIR}/lib/libwww_transport) | |
146 | + | |
147 | +############ | |
148 | + | |
149 | +set(ENABLE_CGI_SERVER 1 CACHE BOOL "Set iff CGI server shall be enabled") | |
150 | +set(ENABLE_CPLUSPLUS 1 CACHE BOOL "Set iff C++ part shall be enabled") | |
151 | +set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff Abyss server shall be enabled") | |
152 | +set(ENABLE_LIBXML2_BACKEND 1 CACHE BOOL "Set iff libxml2 backend shall be used") | |
153 | +set(ENABLE_ABYSS_SERVER 1 CACHE BOOL "Set iff abyss server shall be enabled") | |
154 | +set(ENABLE_ABYSS_THREADS 1 CACHE BOOL "Use pthread") | |
155 | + | |
156 | +if(ENABLE_LIBXML2_BACKEND) | |
157 | + pkg_check_modules(LIBXML2 libxml-2.0) | |
158 | + | |
159 | + if(LIBXML2_FOUND) | |
160 | + set(libxml_pkgconfig libxml-2.0) # TODO: add more alternative modules | |
161 | + endif(LIBXML2_FOUND) | |
162 | +endif(ENABLE_LIBXML2_BACKEND) | |
163 | + | |
164 | +########### | |
165 | + | |
65007067 ER |
166 | +pkg_check_modules(NCURSES ncurses) |
167 | +find_library(READLINE readline) | |
168 | + | |
91f35318 JB |
169 | +if (MUST_BUILD_LIBWWW_CLIENT OR MUST_BUILD_WININET_CLIENT OR MUST_BUILD_CURL_CLIENT) |
170 | + if (NCURSES_FOUND AND READLINE) | |
171 | + set(BUILD_XMLRPC_PSTREAM 1) | |
172 | + message(STATUS "Building xmlrpc_pstream tool") | |
65007067 | 173 | + endif() |
91f35318 JB |
174 | + message(STATUS "Tools will be built") |
175 | + set(BUILD_TOOLS 1) | |
176 | +else() | |
177 | + message(STATUS "Tools will not be built") | |
178 | + set(BUILD_TOOLS 0) | |
65007067 ER |
179 | +endif() |
180 | + | |
181 | +#### <wchar.h> tests | |
182 | +check_include_file(wchar.h _have_wchar_h) | |
183 | +if(_have_wchar_h) | |
184 | + set(HAVE_WCHAR_H 1) | |
185 | +else(_have_wchar_h) | |
186 | + set(HAVE_WCHAR_H 1) | |
187 | +endif(_have_wchar_h) | |
188 | +set(XMLRPC_HAVE_WCHAR ${HAVE_WCHAR_H}) | |
189 | +set(HAVE_WCHAR_H_DEFINE ${HAVE_WCHAR_H}) | |
190 | + | |
191 | + | |
192 | +####### | |
193 | +set(LINKER_AS_NEEDED 1 CACHE BOOL "Use the --as-needed linker option") | |
194 | +if(LINKER_AS_NEEDED) | |
195 | + set(XMLRPC_LINKER_FLAGS "-Wl,--as-needed") | |
196 | +endif(LINKER_AS_NEEDED) | |
197 | + | |
198 | + | |
199 | +try_compile(HAVE_ATTR_UNUSED | |
200 | + ${CMAKE_BINARY_DIR}/ | |
201 | + ${xmlrpc-c_SOURCE_DIR}/cmake/try-attr.cc | |
202 | + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DCMAKE_TEST_ATTR=__unused__) | |
203 | + | |
204 | +try_compile(VA_LIST_IS_NOT_ARRAY | |
205 | + ${CMAKE_BINARY_DIR}/ | |
206 | + ${xmlrpc-c_SOURCE_DIR}/cmake/va-list-is-array.c) | |
207 | + | |
208 | +if(VA_LIST_IS_NOT_ARRAY) | |
209 | + set(VA_LIST_IS_ARRAY 0) | |
210 | + message(STATUS "va_list is not an array") | |
211 | +else(VA_LIST_IS_NOT_ARRAY) | |
212 | + set(VA_LIST_IS_ARRAY 1) | |
213 | + message(STATUS "va_list is an array") | |
214 | +endif(VA_LIST_IS_NOT_ARRAY) | |
215 | + | |
216 | + | |
217 | +if(HAVE_ATTR_UNUSED) | |
218 | + set(ATTR_UNUSED "__attribute__((__unused__))") | |
219 | +endif(HAVE_ATTR_UNUSED) | |
220 | + | |
221 | +if(WIN32) | |
222 | + set(DIRECTORY_SEPARATOR "\\") | |
91f35318 | 223 | + set(THREAD_LIBS "") |
65007067 ER |
224 | +else(WIN32) |
225 | + set(DIRECTORY_SEPARATOR "/") | |
91f35318 JB |
226 | + set(THREAD_LIBS "pthread") |
227 | + set(THREAD_LIBS_PKGCONFIG "-lpthread") | |
65007067 ER |
228 | +endif(WIN32) |
229 | + | |
3671422b JB |
230 | +check_include_file(sys/filio.h HAVE_SYS_FILIO_H) |
231 | +check_include_file(sys/ioctl.h HAVE_SYS_IOCTL_H) | |
232 | +check_include_file(sys/select.h HAVE_SYS_SELECT_H) | |
65007067 ER |
233 | +check_function_exists(setenv HAVE_SETENV) |
234 | +check_function_exists(strcasecmp HAVE_STRCASECMP) | |
235 | +check_function_exists(_stricmp HAVE__STRICMP) | |
236 | +check_function_exists(stricmp HAVE_STRICMP) | |
3671422b JB |
237 | +check_function_exists(strtoll HAVE_STRTOLL) |
238 | +check_function_exists(__strtoll HAVE___STRTOLL) | |
239 | +check_function_exists(strtoull HAVE_STRTOULL) | |
240 | +check_function_exists(__strtoull HAVE___STRTOULL) | |
241 | +check_function_exists(strtoq HAVE_STRTOQ) | |
242 | +check_function_exists(strtouq HAVE_STRTOUQ) | |
65007067 ER |
243 | +check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) |
244 | +check_function_exists(setgroups HAVE_SETGROUPS) | |
245 | +check_function_exists(asprintf HAVE_ASPRINTF) | |
246 | +check_function_exists(pselect HAVE_PSELECT) | |
247 | +check_function_exists(wcsncmp HAVE_WCSNCMP) | |
248 | +check_function_exists(localtime_r HAVE_LOCALTIME_R) | |
249 | +check_function_exists(gmtime_r HAVE_GMTIME_R) | |
250 | + | |
251 | + | |
252 | +configure_file(${xmlrpc-c_SOURCE_DIR}/xmlrpc_config.h.cmake | |
253 | + ${xmlrpc-c_BINARY_DIR}/xmlrpc_config.h | |
254 | + ESCAPE_QUOTES @ONLY) | |
255 | + | |
256 | +configure_file(${xmlrpc-c_SOURCE_DIR}/version.h.cmake | |
257 | + ${xmlrpc-c_BINARY_DIR}/version.h | |
258 | + ESCAPE_QUOTES @ONLY) | |
259 | + | |
260 | +configure_file(${xmlrpc-c_SOURCE_DIR}/transport_config.h.cmake | |
261 | + ${xmlrpc-c_BINARY_DIR}/transport_config.h | |
262 | + ESCAPE_QUOTES @ONLY) | |
263 | + | |
264 | +configure_file(${xmlrpc-c_SOURCE_DIR}/include/xmlrpc-c/config.h.cmake | |
265 | + ${xmlrpc-c_BINARY_DIR}/include/xmlrpc-c/config.h | |
266 | + ESCAPE_QUOTES @ONLY) | |
267 | + | |
268 | + | |
269 | +include_directories(${xmlrpc-c_SOURCE_DIR}/include) | |
270 | +include_directories(${xmlrpc-c_BINARY_DIR}/include) | |
271 | +include_directories(${xmlrpc-c_SOURCE_DIR}/lib/util/include) | |
272 | +include_directories(${xmlrpc-c_BINARY_DIR}) | |
273 | + | |
274 | +add_custom_target(dist | |
275 | + rm -rf _dist && mkdir -p _dist/xmlrpc-c-${XMLRPC_C_VERSION} | |
276 | + COMMAND cp -a ${xmlrpc-c_SOURCE_DIR}/* _dist/xmlrpc-c-${XMLRPC_C_VERSION}/ | |
277 | + COMMAND cd _dist && tar cjf ../xmlrpc-c-${XMLRPC_C_VERSION}.tar.bz2 xmlrpc-c-${XMLRPC_C_VERSION} --exclude=.git --exclude=CVS --exclude=.svn | |
278 | + ) | |
279 | + | |
280 | +set(_lib lib CACHE STRING "Basename of the library-directory; usually 'lib' or 'lib64' (on multilib archs)") | |
281 | +set(_bin bin CACHE STRING "Basename of the bin-directory; usually 'bin'") | |
282 | +set(prefix ${CMAKE_INSTALL_PREFIX}) | |
283 | +set(libdir "${prefix}/${_lib}") | |
284 | +set(bindir "${prefix}/${_bin}") | |
285 | +set(mandir "${prefix}/share/man") | |
286 | +set(pkgconfdir "${libdir}/pkgconfig") | |
287 | +set(includedir "${prefix}/include") | |
288 | + | |
289 | +############# | |
290 | + | |
291 | +install(PROGRAMS xmlrpc-c-config DESTINATION ${_bin}) | |
292 | + | |
293 | +enable_testing() | |
294 | + | |
91f35318 | 295 | +add_subdirectory(test) |
65007067 | 296 | +add_subdirectory(lib) |
65007067 ER |
297 | +add_subdirectory(examples) |
298 | +add_subdirectory(include) | |
299 | +add_subdirectory(src) | |
91f35318 | 300 | + |
65007067 ER |
301 | +if (BUILD_TOOLS) |
302 | + add_subdirectory(tools) | |
303 | +endif() | |
304 | diff --git a/cmake/try-attr.cc b/cmake/try-attr.cc | |
305 | new file mode 100644 | |
306 | index 0000000..4668c5b | |
307 | --- /dev/null | |
308 | +++ b/cmake/try-attr.cc | |
309 | @@ -0,0 +1,3 @@ | |
310 | +int x __attribute__((CMAKE_TEST_ATTR)); | |
311 | + | |
312 | +int main() {} | |
313 | diff --git a/cmake/va-list-is-array.c b/cmake/va-list-is-array.c | |
314 | new file mode 100644 | |
315 | index 0000000..1ad0bab | |
316 | --- /dev/null | |
317 | +++ b/cmake/va-list-is-array.c | |
318 | @@ -0,0 +1,9 @@ | |
319 | +#include <stdarg.h> | |
320 | + | |
321 | +void foo() | |
322 | +{ | |
323 | + va_list list1, list2; | |
324 | + list1 = list2; | |
325 | +} | |
326 | + | |
327 | +int main() {} | |
328 | diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt | |
329 | new file mode 100644 | |
91f35318 | 330 | index 0000000..1535adf |
65007067 ER |
331 | --- /dev/null |
332 | +++ b/examples/CMakeLists.txt | |
91f35318 | 333 | @@ -0,0 +1,68 @@ |
65007067 ER |
334 | +# -*- cmake -*- |
335 | + | |
336 | +include_directories(${CMAKE_CURRENT_BINARY_DIR}) | |
337 | + | |
338 | +macro(ensc_add_example name ext class) | |
339 | + # HACK: avoid name collision of c and c++ program | |
6df01d66 | 340 | + if(${ext} STREQUAL "cpp") |
65007067 | 341 | + set(_target ${name}++) |
6df01d66 | 342 | + else(${ext} STREQUAL "cpp") |
65007067 | 343 | + set(_target ${name}) |
6df01d66 | 344 | + endif(${ext} STREQUAL "cpp") |
65007067 ER |
345 | + |
346 | + add_executable(${_target} ${name}.${ext}) | |
347 | + target_link_libraries(${_target} ${${class}_LIBS}) | |
348 | + list(APPEND ${class}_TARGETS ${_target}) | |
349 | + list(APPEND example_TARGETS ${_target}) | |
350 | +endmacro(ensc_add_example) | |
351 | + | |
352 | +if(ENABLE_CPLUSPLUS) | |
353 | + add_subdirectory(cpp) | |
354 | +endif(ENABLE_CPLUSPLUS) | |
355 | + | |
356 | + | |
3671422b JB |
357 | +set(base_LIBS xmlrpc) |
358 | +ensc_add_example(json c base) | |
359 | +ensc_add_example(gen_sample_add_xml c base) | |
91f35318 | 360 | +ensc_add_example(parse_xml c base) |
65007067 ER |
361 | + |
362 | +if(MUST_BUILD_CLIENT) | |
363 | + set(client_LIBS xmlrpc_client) | |
364 | + | |
365 | + ensc_add_example(auth_client c client) | |
3671422b | 366 | + ensc_add_example(compound_value_client c client) |
65007067 ER |
367 | + ensc_add_example(synch_client c client) |
368 | + ensc_add_example(xmlrpc_sample_add_client c client) | |
369 | + ensc_add_example(xmlrpc_asynch_client c client) | |
370 | +endif(MUST_BUILD_CLIENT) | |
371 | + | |
372 | +if(MUST_BUILD_CURL_CLIENT) | |
373 | + set(client_LIBS xmlrpc_client) | |
374 | + | |
91f35318 JB |
375 | + if(NOT DEFINED MSVCRT) |
376 | + ensc_add_example(interrupted_client c client) | |
377 | + endif(NOT DEFINED MSVCRT) | |
65007067 ER |
378 | +endif(MUST_BUILD_CURL_CLIENT) |
379 | + | |
380 | +if(ENABLE_CGI_SERVER) | |
381 | + set(cgi_server_LIBS xmlrpc_server_cgi) | |
382 | + | |
383 | + ensc_add_example(xmlrpc_sample_add_server_cgi c cgi_server) | |
384 | +endif(ENABLE_CGI_SERVER) | |
385 | + | |
386 | +if(ENABLE_ABYSS_SERVER) | |
387 | + set(abyss_server_LIBS xmlrpc_server_abyss) | |
388 | + | |
3671422b | 389 | + ensc_add_example(compound_value_server c abyss_server) |
65007067 ER |
390 | + ensc_add_example(xmlrpc_inetd_server c abyss_server) |
391 | + ensc_add_example(xmlrpc_socket_server c abyss_server) | |
392 | + ensc_add_example(xmlrpc_loop_server c abyss_server) | |
393 | + ensc_add_example(xmlrpc_sample_add_server c abyss_server) | |
394 | + ensc_add_example(xmlrpc_server_validatee c abyss_server) | |
91f35318 JB |
395 | + |
396 | + if(NOT DEFINED MSVCRT) | |
397 | + ensc_add_example(interrupted_server c abyss_server) | |
398 | + endif(NOT DEFINED MSVCRT) | |
65007067 ER |
399 | +endif(ENABLE_ABYSS_SERVER) |
400 | + | |
401 | +ensc_set_link_exe_flags(${example_TARGETS}) | |
402 | diff --git a/examples/config.h b/examples/config.h | |
403 | new file mode 100644 | |
404 | index 0000000..31d5f9b | |
405 | --- /dev/null | |
406 | +++ b/examples/config.h | |
407 | @@ -0,0 +1 @@ | |
408 | +#include "../xmlrpc_config.h" | |
409 | diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt | |
410 | new file mode 100644 | |
411 | index 0000000..093a75d | |
412 | --- /dev/null | |
413 | +++ b/examples/cpp/CMakeLists.txt | |
414 | @@ -0,0 +1,34 @@ | |
415 | +# -*- cmake -*- | |
416 | + | |
417 | +if(ENABLE_ABYSS_SERVER) | |
418 | + set(abyss_serverxx_LIBS xmlrpc_server_abyss++) | |
419 | + | |
420 | + ensc_add_example(xmlrpc_inetd_server cpp abyss_serverxx) | |
421 | + ensc_add_example(xmlrpc_loop_server cpp abyss_serverxx) | |
422 | + ensc_add_example(xmlrpc_sample_add_server cpp abyss_serverxx) | |
423 | + ensc_add_example(callinfo_abyss_server cpp abyss_serverxx) | |
424 | +endif(ENABLE_ABYSS_SERVER) | |
425 | + | |
426 | +if (ENABLE_CGI_SERVER) | |
427 | + set(cgi_serverxx_LIBS xmlrpc_server_cgi++) | |
428 | + | |
429 | + ensc_add_example(xmlrpc_sample_add_server_cgi cpp cgi_serverxx) | |
430 | +endif(ENABLE_CGI_SERVER) | |
431 | + | |
432 | +if(MUST_BUILD_CLIENT) | |
433 | + set(abyss_clientxx_LIBS xmlrpc_client++) | |
434 | + | |
435 | + ensc_add_example(xmlrpc_sample_add_client cpp abyss_clientxx) | |
436 | + ensc_add_example(sample_add_client_complex cpp abyss_clientxx) | |
437 | + ensc_add_example(asynch_client cpp abyss_clientxx) | |
438 | + | |
439 | + ensc_add_example(pstream_client cpp abyss_clientxx) | |
440 | +endif(MUST_BUILD_CLIENT) | |
441 | + | |
442 | +set(pstream_serverxx_LIBS xmlrpc_server_pstream++) | |
443 | +ensc_add_example(pstream_inetd_server cpp pstream_serverxx) | |
444 | +ensc_add_example(pstream_serial_server cpp pstream_serverxx) | |
445 | + | |
446 | + | |
447 | + | |
448 | +ensc_set_link_exe_flags(${example_TARGETS}) | |
449 | diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt | |
450 | new file mode 100644 | |
451 | index 0000000..ebfdba5 | |
452 | --- /dev/null | |
453 | +++ b/include/CMakeLists.txt | |
454 | @@ -0,0 +1,3 @@ | |
455 | +# -*- cmake -*- | |
456 | + | |
457 | +add_subdirectory(xmlrpc-c) | |
458 | diff --git a/include/xmlrpc-c/CMakeLists.txt b/include/xmlrpc-c/CMakeLists.txt | |
459 | new file mode 100644 | |
3671422b | 460 | index 0000000..b9386b8 |
65007067 ER |
461 | --- /dev/null |
462 | +++ b/include/xmlrpc-c/CMakeLists.txt | |
6df01d66 | 463 | @@ -0,0 +1,75 @@ |
65007067 ER |
464 | +# -*- cmake -*- |
465 | + | |
466 | +macro(ensc_install_symlink src dst) | |
467 | + install(CODE "EXECUTE_PROCESS(COMMAND ln -s xmlrpc-c/${src} \$ENV{DESTDIR}${includedir}/${dst})") | |
468 | +endmacro(ensc_install_symlink) | |
469 | + | |
470 | +list(APPEND headers | |
471 | + ${CMAKE_CURRENT_BINARY_DIR}/config.h | |
472 | + inttypes.h | |
473 | + c_util.h | |
474 | + util.h | |
475 | + base.h | |
3671422b | 476 | + json.h |
65007067 ER |
477 | + abyss.h |
478 | + abyss_unixsock.h | |
479 | + abyss_winsock.h | |
480 | + server.h | |
481 | + server_abyss.h | |
482 | + server_w32httpsys.h | |
483 | + oldxmlrpc.h) | |
484 | + | |
485 | +list(APPEND compat_links "oldxmlrpc.h xmlrpc.h") | |
486 | +list(APPEND compat_links "server.h xmlrpc_server.h") | |
487 | +list(APPEND compat_links "server_abyss.h xmlrpc_abyss.h") | |
488 | +list(APPEND compat_links "server_w32httpsys.h xmlrpc_server_w32httpsys.h") | |
489 | + | |
490 | + | |
491 | +if(ENABLE_CPLUSPLUS) | |
492 | + list(APPEND headers | |
493 | + oldcppwrapper.hpp | |
494 | + girerr.hpp | |
495 | + girmem.hpp | |
496 | + base.hpp | |
6df01d66 | 497 | + base64.hpp |
65007067 ER |
498 | + timeout.hpp |
499 | + xml.hpp | |
500 | + registry.hpp | |
501 | + server_abyss.hpp | |
502 | + packetsocket.hpp | |
503 | + server_pstream.hpp) | |
504 | + | |
505 | + list(APPEND compat_links "oldcppwrapper.hpp XmlRpcCpp.h") | |
506 | +endif(ENABLE_CPLUSPLUS) | |
507 | + | |
508 | +if(MUST_BUILD_CLIENT) | |
509 | + list(APPEND headers | |
510 | + client.h | |
511 | + transport.h | |
512 | + client_global.h) | |
513 | + | |
514 | + list(APPEND compat_links "client.h xmlrpc_client.h") | |
515 | + | |
516 | + if(ENABLE_CPLUSPLUS) | |
517 | + list(APPEND headers | |
518 | + client.hpp | |
519 | + client_transport.hpp | |
520 | + client_simple.hpp) | |
521 | + endif(ENABLE_CPLUSPLUS) | |
522 | +endif(MUST_BUILD_CLIENT) | |
523 | + | |
524 | +if(ENABLE_CGI_SERVER) | |
525 | + list(APPEND headers | |
526 | + server_cgi.h) | |
527 | + | |
528 | + list(APPEND compat_links "server_cgi.h xmlrpc_cgi.h") | |
529 | +endif(ENABLE_CGI_SERVER) | |
530 | + | |
531 | +install(FILES | |
532 | + ${headers} | |
533 | + DESTINATION ${includedir}/xmlrpc-c) | |
534 | + | |
535 | +foreach (ln ${compat_links}) | |
536 | + separate_arguments(ln) | |
537 | + ensc_install_symlink(${ln}) | |
538 | +endforeach(ln) | |
539 | diff --git a/include/xmlrpc-c/config.h.cmake b/include/xmlrpc-c/config.h.cmake | |
540 | new file mode 100644 | |
91f35318 | 541 | index 0000000..48f64be |
65007067 ER |
542 | --- /dev/null |
543 | +++ b/include/xmlrpc-c/config.h.cmake | |
91f35318 | 544 | @@ -0,0 +1,34 @@ |
65007067 ER |
545 | +/* --*- c -*-- */ |
546 | +#ifndef XMLRPC_C_CONFIG_H_INCLUDED | |
547 | +#define XMLRPC_C_CONFIG_H_INCLUDED | |
548 | + | |
549 | +/* This file, part of XML-RPC For C/C++, is meant to | |
550 | + define characteristics of this particular installation | |
551 | + that the other <xmlrpc-c/...> header files need in | |
552 | + order to compile correctly when #included in Xmlrpc-c | |
553 | + user code. | |
554 | + | |
555 | + Those header files #include this one. | |
556 | + | |
557 | + This file was created by a make rule. | |
558 | +*/ | |
559 | +#define XMLRPC_HAVE_WCHAR @HAVE_WCHAR_H@ | |
91f35318 | 560 | +#ifdef _WIN32 |
65007067 ER |
561 | + /* SOCKET is a type defined by <winsock.h>. Anyone who |
562 | + uses XMLRPC_SOCKET on a WIN32 system must #include | |
563 | + <winsock.h> | |
564 | + */ | |
565 | + #define XMLRPC_SOCKET SOCKET | |
566 | + #define XMLRPC_HAVE_TIMEVAL 0 | |
567 | + #define XMLRPC_HAVE_TIMESPEC 0 | |
3671422b | 568 | + #define XMLRPC_HAVE_PTHREAD 0 |
91f35318 | 569 | + #define XMLRPC_HAVE_WINTHREAD 1 |
65007067 ER |
570 | +#else |
571 | + #define XMLRPC_SOCKET int | |
572 | + #define XMLRPC_HAVE_TIMEVAL 1 | |
573 | + #define XMLRPC_HAVE_TIMESPEC 1 | |
3671422b | 574 | + #define XMLRPC_HAVE_PTHREAD 1 |
91f35318 | 575 | + #define XMLRPC_HAVE_WINTHREAD 0 |
65007067 ER |
576 | +#endif |
577 | + | |
578 | +#endif | |
579 | diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt | |
580 | new file mode 100644 | |
581 | index 0000000..7f8f912 | |
582 | --- /dev/null | |
583 | +++ b/lib/CMakeLists.txt | |
6df01d66 | 584 | @@ -0,0 +1,14 @@ |
65007067 ER |
585 | +## -*- cmake -*- |
586 | + | |
587 | +add_subdirectory(abyss) | |
588 | +add_subdirectory(libutil) | |
589 | +add_subdirectory(util) | |
590 | +add_subdirectory(curl_transport) | |
591 | +add_subdirectory(libwww_transport) | |
592 | +add_subdirectory(wininet_transport) | |
6df01d66 JB |
593 | +add_subdirectory(libutil++) |
594 | +add_subdirectory(abyss++) | |
65007067 ER |
595 | + |
596 | +if(NOT ENABLE_LIBXML2_BACKEND) | |
597 | + add_subdirectory(expat) | |
598 | +endif(NOT ENABLE_LIBXML2_BACKEND) | |
599 | diff --git a/lib/abyss/CMakeLists.txt b/lib/abyss/CMakeLists.txt | |
600 | new file mode 100644 | |
601 | index 0000000..2358061 | |
602 | --- /dev/null | |
603 | +++ b/lib/abyss/CMakeLists.txt | |
604 | @@ -0,0 +1,3 @@ | |
605 | +## -*- cmake -*- | |
606 | + | |
607 | +SUBDIRS(src) | |
608 | diff --git a/lib/abyss/src/CMakeLists.txt b/lib/abyss/src/CMakeLists.txt | |
609 | new file mode 100644 | |
91f35318 | 610 | index 0000000..b1813bb |
65007067 ER |
611 | --- /dev/null |
612 | +++ b/lib/abyss/src/CMakeLists.txt | |
91f35318 | 613 | @@ -0,0 +1,70 @@ |
65007067 ER |
614 | +## -*- cmake -*- |
615 | + | |
616 | +set(xmlrpc_abyss_SOURCES | |
617 | + abyss_info.h | |
618 | + channel.c | |
619 | + channel.h | |
620 | + chanswitch.c | |
621 | + chanswitch.h | |
622 | + conf.c | |
623 | + conn.c | |
624 | + conn.h | |
625 | + data.c | |
626 | + data.h | |
627 | + date.c | |
628 | + date.h | |
629 | + file.c | |
630 | + file.h | |
631 | + handler.c | |
632 | + handler.h | |
633 | + http.c | |
634 | + http.h | |
635 | + init.c | |
636 | + response.c | |
637 | + server.c | |
638 | + server.h | |
639 | + session.c | |
640 | + session.h | |
641 | + socket.c | |
642 | + socket.h | |
65007067 ER |
643 | + thread.h |
644 | + token.c | |
645 | + token.h | |
646 | + trace.c | |
647 | + trace.h) | |
648 | + | |
649 | +add_definitions(-D_UNIX) | |
650 | + | |
91f35318 JB |
651 | +if(WIN32) |
652 | + list(APPEND xmlrpc_abyss_SOURCES thread_windows.c) | |
653 | +else(WIN32) | |
654 | + list(APPEND xmlrpc_abyss_SOURCES socket_unix.c socket_unix.h) | |
655 | + | |
656 | + if(ENABLE_ABYSS_THREADS) | |
657 | + list(APPEND xmlrpc_abyss_SOURCES thread_pthread.c) | |
658 | + else(ENABLE_ABYSS_THREADS) | |
659 | + list(APPEND xmlrpc_abyss_SOURCES thread_fork.c) | |
660 | + endif(ENABLE_ABYSS_THREADS) | |
661 | +endif(WIN32) | |
65007067 ER |
662 | + |
663 | +add_library(xmlrpc_abyss SHARED ${xmlrpc_abyss_SOURCES}) | |
664 | +target_link_libraries(xmlrpc_abyss xmlrpc_util) | |
665 | + | |
666 | +if(ENABLE_ABYSS_THREADS) | |
667 | + set_target_properties(xmlrpc_abyss PROPERTIES DEFINE_SYMBOL _THREAD) | |
91f35318 JB |
668 | + target_link_libraries(xmlrpc_abyss ${THREAD_LIBS}) |
669 | + ensc_pkgconfig_lib(xmlrpc_abyss "${THREAD_LIBS_PKGCONFIG}") | |
65007067 ER |
670 | +endif(ENABLE_ABYSS_THREADS) |
671 | + | |
672 | +install(TARGETS xmlrpc_abyss | |
673 | + RUNTIME DESTINATION ${_bin} | |
674 | + LIBRARY DESTINATION ${_lib} | |
675 | + ARCHIVE DESTINATION ${_lib}) | |
676 | + | |
677 | +set_target_properties(xmlrpc_abyss | |
678 | + PROPERTIES | |
679 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
680 | + VERSION ${XMLRPC_C_LIBVERSION} | |
681 | + SOVERSION ${XMLRPC_C_SOVERSION}) | |
682 | + | |
683 | +ensc_pkgconfig(xmlrpc_abyss) | |
684 | diff --git a/lib/abyss/src/xmlrpc_abyss.pc.cmake b/lib/abyss/src/xmlrpc_abyss.pc.cmake | |
685 | new file mode 100644 | |
91f35318 | 686 | index 0000000..b0dbcc9 |
65007067 ER |
687 | --- /dev/null |
688 | +++ b/lib/abyss/src/xmlrpc_abyss.pc.cmake | |
689 | @@ -0,0 +1,12 @@ | |
690 | +bindir=@bindir@ | |
691 | +prefix=@prefix@ | |
692 | +libdir=@libdir@ | |
693 | +includedir=@includedir@ | |
694 | + | |
91f35318 | 695 | +Name: xmlrpc_abyss |
65007067 ER |
696 | +Description: XMLRPC Abyss base library |
697 | +Version: @XMLRPC_C_VERSION@ | |
698 | + | |
699 | +Requires.private: xmlrpc_util | |
91f35318 | 700 | +Libs: -L${libdir} -lxmlrpc_abyss @xmlrpc_abyss_pkgconfig_libs@ |
65007067 | 701 | +Cflags: |
6df01d66 JB |
702 | diff --git a/lib/abyss++/CMakeLists.txt b/lib/abyss++/CMakeLists.txt |
703 | new file mode 100644 | |
704 | index 0000000..b1813bb | |
705 | --- /dev/null | |
706 | +++ b/lib/abyss++/CMakeLists.txt | |
707 | @@ -0,0 +1,21 @@ | |
708 | +## -*- cmake -*- | |
709 | + | |
710 | +add_library(xmlrpc_abyss++ SHARED | |
711 | + AbyssChanSwitch.cpp | |
712 | + AbyssEnvironment.cpp | |
713 | + AbyssServer.cpp) | |
714 | + | |
715 | +target_link_libraries(xmlrpc_abyss++ xmlrpc_abyss xmlrpc_util++ xmlrpc_util) | |
716 | + | |
717 | +install(TARGETS xmlrpc_abyss++ | |
718 | + RUNTIME DESTINATION ${_bin} | |
719 | + LIBRARY DESTINATION ${_lib} | |
720 | + ARCHIVE DESTINATION ${_lib}) | |
721 | + | |
722 | +set_target_properties(xmlrpc_abyss++ | |
723 | + PROPERTIES | |
724 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
725 | + VERSION ${XMLRPC_CXX_LIBVERSION} | |
726 | + SOVERSION ${XMLRPC_CXX_SOVERSION}) | |
727 | + | |
728 | +ensc_pkgconfig(xmlrpc_abyss++) | |
729 | diff --git a/lib/abyss++/xmlrpc_abyss++.pc.cmake b/lib/abyss++/xmlrpc_abyss++.pc.cmake | |
730 | new file mode 100644 | |
731 | index 0000000..b0dbcc9 | |
732 | --- /dev/null | |
733 | +++ b/lib/abyss++/xmlrpc_abyss++.pc.cmake | |
734 | @@ -0,0 +1,12 @@ | |
735 | +bindir=@bindir@ | |
736 | +prefix=@prefix@ | |
737 | +libdir=@libdir@ | |
738 | +includedir=@includedir@ | |
739 | + | |
740 | +Name: xmlrpc_abyss++ | |
741 | +Description: XMLRPC C++ Abyss library | |
742 | +Version: @XMLRPC_C_VERSION@ | |
743 | + | |
744 | +Requires.private: xmlrpc_abyss xmlrpc_util++ xmlrpc_util | |
745 | +Libs: -L${libdir} -lxmlrpc_abyss++ | |
746 | +Cflags: | |
65007067 ER |
747 | diff --git a/lib/curl_transport/CMakeLists.txt b/lib/curl_transport/CMakeLists.txt |
748 | new file mode 100644 | |
749 | index 0000000..4224a13 | |
750 | --- /dev/null | |
751 | +++ b/lib/curl_transport/CMakeLists.txt | |
6df01d66 | 752 | @@ -0,0 +1,15 @@ |
65007067 ER |
753 | +# -*- cmake -*- |
754 | + | |
755 | +if(MUST_BUILD_CURL_CLIENT) | |
756 | + list(APPEND transport_SOURCES | |
757 | + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_curl_transport.c | |
758 | + | |
759 | + ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.c | |
760 | + ${CMAKE_CURRENT_SOURCE_DIR}/curltransaction.h | |
761 | + | |
762 | + ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.c | |
763 | + ${CMAKE_CURRENT_SOURCE_DIR}/curlmulti.h | |
764 | + | |
65007067 ER |
765 | + ${CMAKE_CURRENT_SOURCE_DIR}/curlversion.h |
766 | + ) | |
767 | +endif(MUST_BUILD_CURL_CLIENT) | |
768 | diff --git a/lib/expat/CMakeLists.txt b/lib/expat/CMakeLists.txt | |
769 | new file mode 100644 | |
770 | index 0000000..7397f52 | |
771 | --- /dev/null | |
772 | +++ b/lib/expat/CMakeLists.txt | |
773 | @@ -0,0 +1,9 @@ | |
774 | +# -*- cmake -*- | |
775 | + | |
776 | + | |
777 | +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/xmltok) | |
778 | + | |
779 | +add_subdirectory(gennmtab) | |
780 | +add_subdirectory(xmlparse) | |
781 | +add_subdirectory(xmltok) | |
782 | +add_subdirectory(xmlwf) | |
783 | diff --git a/lib/expat/gennmtab/CMakeLists.txt b/lib/expat/gennmtab/CMakeLists.txt | |
784 | new file mode 100644 | |
785 | index 0000000..48a44da | |
786 | --- /dev/null | |
787 | +++ b/lib/expat/gennmtab/CMakeLists.txt | |
788 | @@ -0,0 +1,3 @@ | |
789 | +# -*- cmake -*- | |
790 | + | |
791 | +ADD_EXECUTABLE(gennmtab gennmtab.c) | |
792 | diff --git a/lib/expat/xmlparse/CMakeLists.txt b/lib/expat/xmlparse/CMakeLists.txt | |
793 | new file mode 100644 | |
794 | index 0000000..f87008a | |
795 | --- /dev/null | |
796 | +++ b/lib/expat/xmlparse/CMakeLists.txt | |
797 | @@ -0,0 +1,7 @@ | |
798 | +# -*- cmake -*- | |
799 | + | |
800 | +add_library(xmlrpc_xmlparse STATIC | |
801 | + xmlparse.c) | |
802 | +target_link_libraries(xmlrpc_xmlparse xmlrpc_xmltok) | |
803 | + | |
804 | +ensc_pkgconfig(xmlrpc_xmlparse) | |
805 | diff --git a/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | |
806 | new file mode 100644 | |
807 | index 0000000..5b2a7e4 | |
808 | --- /dev/null | |
809 | +++ b/lib/expat/xmlparse/xmlrpc_xmlparse.pc.cmake | |
810 | @@ -0,0 +1,12 @@ | |
811 | +bindir=@bindir@ | |
812 | +prefix=@prefix@ | |
813 | +libdir=@libdir@ | |
814 | +includedir=@includedir@ | |
815 | + | |
816 | +Name: xmlrpc_xmlparse | |
817 | +Description: XMLRPC xmlparse library | |
818 | +Version: @XMLRPC_C_VERSION@ | |
819 | + | |
820 | +Requires.private: xmlrpc_xmltok | |
821 | +Libs: -L${libdir} -lxmlrpc_xmlparse | |
822 | +Cflags: | |
823 | diff --git a/lib/expat/xmltok/CMakeLists.txt b/lib/expat/xmltok/CMakeLists.txt | |
824 | new file mode 100644 | |
3671422b | 825 | index 0000000..42406fb |
65007067 ER |
826 | --- /dev/null |
827 | +++ b/lib/expat/xmltok/CMakeLists.txt | |
3671422b | 828 | @@ -0,0 +1,23 @@ |
65007067 ER |
829 | +# -*- cmake -*- |
830 | + | |
831 | +include_directories(${CMAKE_CURRENT_BINARY_DIR}) | |
832 | + | |
833 | +add_definitions(-DXML_BYTE_ORDER=0) | |
834 | + | |
835 | +add_library(xmlrpc_xmltok STATIC | |
3671422b JB |
836 | + xmltok.c xmlrole.c xmltok_impl.c |
837 | + ${CMAKE_CURRENT_BINARY_DIR}/nametab.h) | |
65007067 ER |
838 | + |
839 | +set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/nametab.h | |
840 | + PROPERTIES | |
841 | + OBJECT_DEPENDS gennmtab | |
842 | + GENERATED true) | |
843 | + | |
844 | + | |
845 | +get_target_property(GENNMTAB_EXECUTABLE gennmtab LOCATION) | |
846 | +add_custom_command( | |
847 | + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/nametab.h | |
848 | + COMMAND ${GENNMTAB_EXECUTABLE} >nametab.h || { rm -f nametab.h\; false\; } | |
849 | + DEPENDS gennmtab) | |
850 | + | |
851 | +ensc_pkgconfig(xmlrpc_xmltok) | |
852 | diff --git a/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | |
853 | new file mode 100644 | |
854 | index 0000000..88e7ad8 | |
855 | --- /dev/null | |
856 | +++ b/lib/expat/xmltok/xmlrpc_xmltok.pc.cmake | |
857 | @@ -0,0 +1,9 @@ | |
858 | +prefix=@prefix@ | |
859 | +libdir=@libdir@ | |
860 | + | |
861 | +Name: xmlrpc_xmltok | |
862 | +Description: XMLRPC xmltok library | |
863 | +Version: @XMLRPC_C_VERSION@ | |
864 | + | |
865 | +Libs: -L${libdir} | |
866 | +Cflags: | |
867 | diff --git a/lib/libutil/CMakeLists.txt b/lib/libutil/CMakeLists.txt | |
868 | new file mode 100644 | |
3671422b | 869 | index 0000000..25ba487 |
65007067 ER |
870 | --- /dev/null |
871 | +++ b/lib/libutil/CMakeLists.txt | |
6df01d66 | 872 | @@ -0,0 +1,30 @@ |
65007067 ER |
873 | +# -*- cmake -*- |
874 | + | |
875 | +add_library(xmlrpc_util SHARED | |
876 | + asprintf.c | |
877 | + base64.c | |
878 | + error.c | |
6df01d66 JB |
879 | + lock_platform.c |
880 | + lock_pthread.c | |
881 | + lock_none.c | |
65007067 ER |
882 | + make_printable.c |
883 | + memblock.c | |
884 | + select.c | |
885 | + sleep.c | |
3671422b | 886 | + string_number.c |
65007067 ER |
887 | + time.c |
888 | + utf8.c) | |
889 | + | |
890 | +set_target_properties(xmlrpc_util | |
891 | + PROPERTIES | |
892 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
893 | + VERSION ${XMLRPC_C_LIBVERSION} | |
894 | + SOVERSION ${XMLRPC_C_SOVERSION}) | |
6df01d66 | 895 | +target_link_libraries(xmlrpc_util ${THREAD_LIBS}) |
65007067 ER |
896 | + |
897 | +install(TARGETS xmlrpc_util | |
898 | + RUNTIME DESTINATION ${_bin} | |
899 | + LIBRARY DESTINATION ${_lib} | |
900 | + ARCHIVE DESTINATION ${_lib}) | |
901 | + | |
902 | +ensc_pkgconfig(xmlrpc_util) | |
903 | diff --git a/lib/libutil/xmlrpc_util.pc.cmake b/lib/libutil/xmlrpc_util.pc.cmake | |
904 | new file mode 100644 | |
91f35318 | 905 | index 0000000..d4e01bf |
65007067 ER |
906 | --- /dev/null |
907 | +++ b/lib/libutil/xmlrpc_util.pc.cmake | |
908 | @@ -0,0 +1,10 @@ | |
909 | +prefix=@prefix@ | |
910 | +libdir=@libdir@ | |
911 | +includedir=@includedir@ | |
912 | + | |
91f35318 | 913 | +Name: xmlrpc_util |
65007067 ER |
914 | +Description: XMLRPC utility library |
915 | +Version: @XMLRPC_C_VERSION@ | |
916 | + | |
91f35318 | 917 | +Libs: -L${libdir} -lxmlrpc_util |
65007067 | 918 | +Cflags: -I${includedir} |
6df01d66 JB |
919 | diff --git a/lib/libutil++/CMakeLists.txt b/lib/libutil++/CMakeLists.txt |
920 | new file mode 100644 | |
921 | index 0000000..25ba487 | |
922 | --- /dev/null | |
923 | +++ b/lib/libutil++/CMakeLists.txt | |
924 | @@ -0,0 +1,22 @@ | |
925 | +# -*- cmake -*- | |
926 | + | |
927 | +add_library(xmlrpc_util++ SHARED | |
928 | + Lock.cpp | |
929 | + base64.cpp | |
930 | + env_wrap.cpp | |
931 | + girerr.cpp | |
932 | + girmem.cpp) | |
933 | + | |
934 | +set_target_properties(xmlrpc_util++ | |
935 | + PROPERTIES | |
936 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
937 | + VERSION ${XMLRPC_CXX_LIBVERSION} | |
938 | + SOVERSION ${XMLRPC_CXX_SOVERSION}) | |
939 | +target_link_libraries(xmlrpc_util++ xmlrpc_util ${THREAD_LIBS}) | |
940 | + | |
941 | +install(TARGETS xmlrpc_util++ | |
942 | + RUNTIME DESTINATION ${_bin} | |
943 | + LIBRARY DESTINATION ${_lib} | |
944 | + ARCHIVE DESTINATION ${_lib}) | |
945 | + | |
946 | +ensc_pkgconfig(xmlrpc_util++) | |
947 | diff --git a/lib/libutil++/xmlrpc_util++.pc.cmake b/lib/libutil++/xmlrpc_util++.pc.cmake | |
948 | new file mode 100644 | |
949 | index 0000000..d4e01bf | |
950 | --- /dev/null | |
951 | +++ b/lib/libutil++/xmlrpc_util++.pc.cmake | |
952 | @@ -0,0 +1,11 @@ | |
953 | +prefix=@prefix@ | |
954 | +libdir=@libdir@ | |
955 | +includedir=@includedir@ | |
956 | + | |
957 | +Name: xmlrpc_util++ | |
958 | +Description: XMLRPC C++ utility library | |
959 | +Version: @XMLRPC_C_VERSION@ | |
960 | + | |
961 | +Requires.private: xmlrpc_util | |
962 | +Libs: -L${libdir} -lxmlrpc_util++ | |
963 | +Cflags: -I${includedir} | |
65007067 ER |
964 | diff --git a/lib/libwww_transport/CMakeLists.txt b/lib/libwww_transport/CMakeLists.txt |
965 | new file mode 100644 | |
966 | index 0000000..aa52d9e | |
967 | --- /dev/null | |
968 | +++ b/lib/libwww_transport/CMakeLists.txt | |
6df01d66 | 969 | @@ -0,0 +1,6 @@ |
65007067 ER |
970 | +# -*- cmake -*- |
971 | + | |
972 | +if(MUST_BUILD_LIBWWW_CLIENT) | |
973 | + list(APPEND transport_SOURCES | |
6df01d66 | 974 | + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_libwww_transport.c) |
65007067 ER |
975 | +endif(MUST_BUILD_LIBWWW_CLIENT) |
976 | diff --git a/lib/util/CMakeLists.txt b/lib/util/CMakeLists.txt | |
977 | new file mode 100644 | |
978 | index 0000000..80696d9 | |
979 | --- /dev/null | |
980 | +++ b/lib/util/CMakeLists.txt | |
981 | @@ -0,0 +1,17 @@ | |
982 | +## -*- cmake -*- | |
983 | + | |
984 | +set(util_SOURCES | |
985 | + casprintf.c | |
986 | + cmdline_parser.c | |
987 | + cmdline_parser_cpp.cpp | |
988 | + getoptx.c | |
989 | + getoptx.h | |
990 | + stripcaseeq.c | |
991 | + string_parser.c | |
992 | +) | |
993 | + | |
994 | +if(WIN32) | |
995 | + list(APPEND util_SOURCES pthreadx_win32.c) | |
996 | +endif(WIN32) | |
997 | + | |
998 | +add_library(util STATIC ${util_SOURCES}) | |
999 | diff --git a/lib/wininet_transport/CMakeLists.txt b/lib/wininet_transport/CMakeLists.txt | |
1000 | new file mode 100644 | |
1001 | index 0000000..17535ab | |
1002 | --- /dev/null | |
1003 | +++ b/lib/wininet_transport/CMakeLists.txt | |
1004 | @@ -0,0 +1,7 @@ | |
1005 | +# -*- cmake -*- | |
1006 | + | |
1007 | +if(MUST_BUILD_WININET_CLIENT) | |
1008 | + list(APPEND transport_SOURCES | |
1009 | + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.c | |
3671422b | 1010 | + ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_wininet_transport.h) |
65007067 ER |
1011 | +endif(MUST_BUILD_WININET_CLIENT) |
1012 | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt | |
1013 | new file mode 100644 | |
91f35318 | 1014 | index 0000000..f51e15b |
65007067 ER |
1015 | --- /dev/null |
1016 | +++ b/src/CMakeLists.txt | |
6df01d66 | 1017 | @@ -0,0 +1,118 @@ |
65007067 ER |
1018 | +# -*- cmake -*- |
1019 | + | |
1020 | +if(ENABLE_LIBXML2_BACKEND) | |
1021 | + set(xmlrpc_xml_parser xmlrpc_libxml2.c) | |
1022 | + set(libxml_INCLUDES ${LIBXML2_CFLAGS}) | |
1023 | + set(libxml_LIBS ${LIBXML2_LDFLAGS}) | |
1024 | + set(xmlrpc_pkgconfig_req ${libxml_pkgconfig}) | |
1025 | +else(ENABLE_LIBXML2_BACKEND) | |
1026 | + set(xmlrpc_xml_parser xmlrpc_expat.c) | |
1027 | + set(libxml_INCLUDES -I${xmlrpc-c_SOURCE_DIR}/lib/expat/xmlparse) | |
1028 | + set(libxml_LIBS xmlrpc_xmlparse) | |
1029 | + set(xmlrpc_pkgconfig_req xmlrpc_xmlparse) | |
1030 | +endif(ENABLE_LIBXML2_BACKEND) | |
1031 | + | |
1032 | +if(MUST_BUILD_WININET_CLIENT) | |
1033 | + set(client_wininet_CFLAGS "") | |
3671422b | 1034 | + set(client_wininet_LIBS "${WININET_LDADD}" pthread) |
65007067 | 1035 | + list(APPEND transport_SOURCES |
3671422b | 1036 | + ${wininet_srcdir}/xmlrpc_wininet_transport.c ${wininet_srcdir}/xmlrpc_wininet_transport.h) |
65007067 ER |
1037 | +endif(MUST_BUILD_WININET_CLIENT) |
1038 | + | |
1039 | +if(MUST_BUILD_LIBWWW_CLIENT) | |
1040 | + set(client_libwww_CFLAGS "${LIBWWW_CFLAGS}") | |
1041 | + set(client_libwww_LIBS "${LIBWWW_LIBS}") | |
6df01d66 | 1042 | + list(APPEND transport_SOURCES ${libwww_srcdir}/xmlrpc_libwww_transport.c) |
65007067 ER |
1043 | +endif(MUST_BUILD_LIBWWW_CLIENT) |
1044 | + | |
1045 | +if(MUST_BUILD_CURL_CLIENT) | |
1046 | + set(client_curl_CFLAGS ${CURL_CFLAGS}) | |
3671422b | 1047 | + set(client_curl_LIBS ${CURL_LDFLAGS} pthread) |
65007067 ER |
1048 | + set(xmlrpc_client_pkgconfig_req libcurl) |
1049 | + list(APPEND transport_SOURCES | |
1050 | + ${curl_srcdir}/xmlrpc_curl_transport.c | |
1051 | + ${curl_srcdir}/curltransaction.c | |
1052 | + ${curl_srcdir}/curltransaction.h | |
1053 | + ${curl_srcdir}/curlmulti.c | |
1054 | + ${curl_srcdir}/curlmulti.h | |
65007067 ER |
1055 | + ${curl_srcdir}/curlversion.h |
1056 | + ) | |
1057 | +endif(MUST_BUILD_CURL_CLIENT) | |
1058 | + | |
1059 | +set(client_CFLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir} ${client_wininet_CFLAGS} ${client_libwww_CFLAGS} ${client_curl_CFLAGS}") | |
1060 | +set(client_LIBS ${client_wininet_LIBS} ${client_libwww_LIBS} ${client_curl_LIBS}) | |
1061 | + | |
1062 | + | |
1063 | +add_subdirectory(cpp) | |
b2b65fa4 | 1064 | + |
65007067 ER |
1065 | + |
1066 | + | |
65007067 ER |
1067 | +### libxmlrpc.so |
1068 | +add_library(xmlrpc SHARED | |
6df01d66 | 1069 | + base_global.c double.c parse_datetime.c parse_value.c resource.c trace.c version.c |
3671422b | 1070 | + json.c |
65007067 ER |
1071 | + ${xmlrpc_xml_parser} |
1072 | + xmlrpc_data.c xmlrpc_datetime.c xmlrpc_string.c | |
1073 | + xmlrpc_array.c xmlrpc_struct.c | |
1074 | + xmlrpc_build.c xmlrpc_decompose.c xmlrpc_parse.c xmlrpc_serialize.c | |
91f35318 | 1075 | + xmlrpc_authcookie.c) |
65007067 ER |
1076 | + |
1077 | +set_target_properties(xmlrpc | |
1078 | + PROPERTIES | |
1079 | + COMPILE_FLAGS ${libxml_INCLUDES}) | |
1080 | + | |
1081 | +ensc_pkgconfig(xmlrpc) | |
1082 | +target_link_libraries(xmlrpc ${libxml_LIBS} xmlrpc_util) | |
1083 | +list(APPEND lib_TARGETS xmlrpc) | |
1084 | + | |
1085 | +### libxmlrpc_client.so | |
1086 | +add_library(xmlrpc_client SHARED | |
1087 | + xmlrpc_client.c xmlrpc_client_global.c xmlrpc_server_info.c ${transport_SOURCES}) | |
1088 | + | |
1089 | +target_link_libraries(xmlrpc_client xmlrpc ${client_LIBS}) | |
1090 | +set_target_properties(xmlrpc_client | |
1091 | + PROPERTIES | |
1092 | + COMPILE_FLAGS "${client_CFLAGS}") | |
1093 | +list(APPEND lib_TARGETS xmlrpc_client) | |
1094 | +ensc_pkgconfig(xmlrpc_client) | |
1095 | + | |
1096 | +### libxmlrpc_server.so | |
1097 | +add_library(xmlrpc_server SHARED | |
1098 | + registry.c method.c system_method.c) | |
1099 | +target_link_libraries(xmlrpc_server xmlrpc) | |
1100 | +list(APPEND lib_TARGETS xmlrpc_server) | |
1101 | +ensc_pkgconfig(xmlrpc_server) | |
1102 | + | |
1103 | + | |
1104 | +### libxmlrpc_server_abyss.so | |
1105 | +if(ENABLE_ABYSS_SERVER) | |
1106 | + add_library(xmlrpc_server_abyss SHARED | |
91f35318 | 1107 | + xmlrpc_server_abyss.c abyss_handler.c) |
65007067 ER |
1108 | + target_link_libraries(xmlrpc_server_abyss xmlrpc_abyss xmlrpc_server) |
1109 | + list(APPEND lib_TARGETS xmlrpc_server_abyss) | |
1110 | + ensc_pkgconfig(xmlrpc_server_abyss) | |
1111 | +endif(ENABLE_ABYSS_SERVER) | |
1112 | + | |
1113 | + | |
1114 | + | |
1115 | +### libxmlrpc_server_cgi.so | |
1116 | +if(ENABLE_CGI_SERVER) | |
1117 | + add_library(xmlrpc_server_cgi SHARED | |
1118 | + xmlrpc_server_cgi) | |
1119 | + target_link_libraries(xmlrpc_server_cgi xmlrpc_server) | |
1120 | + list(APPEND lib_TARGETS xmlrpc_server_cgi) | |
1121 | + ensc_pkgconfig(xmlrpc_server_cgi) | |
1122 | +endif(ENABLE_CGI_SERVER) | |
1123 | + | |
1124 | +install(TARGETS ${lib_TARGETS} | |
1125 | + RUNTIME DESTINATION ${_bin} | |
1126 | + LIBRARY DESTINATION ${_lib}) | |
1127 | + | |
1128 | +set_target_properties(${lib_TARGETS} | |
1129 | + PROPERTIES | |
1130 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
1131 | + VERSION ${XMLRPC_C_LIBVERSION} | |
1132 | + SOVERSION ${XMLRPC_C_SOVERSION}) | |
1133 | + | |
1134 | + | |
1135 | +enable_testing() | |
1136 | diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt | |
1137 | new file mode 100644 | |
3671422b | 1138 | index 0000000..3171156 |
65007067 ER |
1139 | --- /dev/null |
1140 | +++ b/src/cpp/CMakeLists.txt | |
1141 | @@ -0,0 +1,70 @@ | |
1142 | +# -*- cmake -*- | |
1143 | + | |
1144 | +####### libxmlrpc++.so | |
1145 | +add_library(xmlrpc++ SHARED | |
6df01d66 | 1146 | + fault.cpp global.cpp |
65007067 | 1147 | + outcome.cpp param_list.cpp value.cpp xml.cpp) |
6df01d66 | 1148 | +target_link_libraries(xmlrpc++ xmlrpc_util++ xmlrpc pthread) |
65007067 ER |
1149 | +list(APPEND lib_TARGETS xmlrpc++) |
1150 | +ensc_pkgconfig(xmlrpc++) | |
1151 | + | |
1152 | +####### libxmlrpc_cpp.so | |
1153 | +add_library(xmlrpc_cpp SHARED XmlRpcCpp) | |
6df01d66 | 1154 | +target_link_libraries(xmlrpc_cpp xmlrpc xmlrpc_server) |
65007067 ER |
1155 | +list(APPEND lib_TARGETS xmlrpc_cpp) |
1156 | +ensc_pkgconfig(xmlrpc_cpp) | |
1157 | + | |
1158 | +####### libxmlrpc_server++.so | |
1159 | +add_library(xmlrpc_server++ SHARED registry.cpp) | |
1160 | +target_link_libraries(xmlrpc_server++ xmlrpc++ xmlrpc_server) | |
1161 | +list(APPEND lib_TARGETS xmlrpc_server++) | |
1162 | +ensc_pkgconfig(xmlrpc_server++) | |
1163 | + | |
1164 | +####### libxmlrpc_server_abyss++.so | |
1165 | +if(ENABLE_ABYSS_SERVER) | |
1166 | + add_library(xmlrpc_server_abyss++ SHARED server_abyss.cpp) | |
6df01d66 | 1167 | + target_link_libraries(xmlrpc_server_abyss++ xmlrpc_abyss++ xmlrpc_server++ xmlrpc_server_abyss) |
65007067 ER |
1168 | + list(APPEND lib_TARGETS xmlrpc_server_abyss++) |
1169 | + ensc_pkgconfig(xmlrpc_server_abyss++) | |
1170 | +endif(ENABLE_ABYSS_SERVER) | |
1171 | + | |
1172 | +####### libxmlrpc_server_cgi++.so | |
1173 | +if(ENABLE_CGI_SERVER) | |
1174 | + add_library(xmlrpc_server_cgi++ SHARED server_cgi.cpp) | |
1175 | + target_link_libraries(xmlrpc_server_cgi++ xmlrpc_server++) | |
1176 | + list(APPEND lib_TARGETS xmlrpc_server_cgi++) | |
1177 | + ensc_pkgconfig(xmlrpc_server_cgi++) | |
1178 | +endif(ENABLE_CGI_SERVER) | |
1179 | + | |
1180 | +####### libxmlrpc_server_pstream++.so | |
1181 | +add_library(xmlrpc_server_pstream++ SHARED server_pstream.cpp server_pstream_conn) | |
1182 | +target_link_libraries(xmlrpc_server_pstream++ xmlrpc_server++ xmlrpc_packetsocket) | |
1183 | +list(APPEND lib_TARGETS xmlrpc_server_pstream++) | |
1184 | +ensc_pkgconfig(xmlrpc_server_pstream++) | |
1185 | + | |
1186 | +####### libxmlrpc_packetsocket.so | |
1187 | +add_library(xmlrpc_packetsocket SHARED packetsocket.cpp) | |
1188 | +target_link_libraries(xmlrpc_packetsocket xmlrpc++) | |
1189 | +list(APPEND lib_TARGETS xmlrpc_packetsocket) | |
1190 | +ensc_pkgconfig(xmlrpc_packetsocket) | |
1191 | + | |
1192 | +####### libxmlrpc_client++.so | |
1193 | +add_library(xmlrpc_client++ SHARED | |
1194 | + client.cpp client_simple.cpp curl.cpp libwww.cpp wininet.cpp pstream.cpp) | |
1195 | +set_target_properties(xmlrpc_client++ | |
1196 | + PROPERTIES | |
1197 | + COMPILE_FLAGS "-I${wininet_srcdir} -I${libwww_srcdir} -I${curl_srcdir}") | |
1198 | +target_link_libraries(xmlrpc_client++ xmlrpc++ xmlrpc_client xmlrpc_packetsocket) | |
1199 | +list(APPEND lib_TARGETS xmlrpc_client++) | |
1200 | +ensc_pkgconfig(xmlrpc_client++) | |
1201 | + | |
1202 | + | |
1203 | +install(TARGETS ${lib_TARGETS} | |
1204 | + RUNTIME DESTINATION ${_bin} | |
1205 | + LIBRARY DESTINATION ${_lib}) | |
1206 | + | |
1207 | +set_target_properties(${lib_TARGETS} | |
1208 | + PROPERTIES | |
1209 | + LINK_FLAGS ${XMLRPC_LINKER_FLAGS} | |
1210 | + VERSION ${XMLRPC_CXX_LIBVERSION} | |
1211 | + SOVERSION ${XMLRPC_CXX_SOVERSION}) | |
1212 | diff --git a/src/cpp/test/CMakeLists.txt b/src/cpp/test/CMakeLists.txt | |
1213 | new file mode 100644 | |
3671422b | 1214 | index 0000000..dffd36c |
65007067 ER |
1215 | --- /dev/null |
1216 | +++ b/src/cpp/test/CMakeLists.txt | |
3671422b | 1217 | @@ -0,0 +1,18 @@ |
65007067 ER |
1218 | +# -*- cmake -*- |
1219 | + | |
1220 | +set(test_SOURCES | |
3671422b JB |
1221 | + test.cpp base64.cpp registry.cpp server_abyss.cpp |
1222 | + server_pstream.cpp tools.cpp value.cpp xml.cpp ) | |
65007067 ER |
1223 | + |
1224 | +if(MUST_BUILD_CLIENT) | |
1225 | + list(APPEND test_SOURCES testclient.cpp) | |
1226 | + list(APPEND test_LIBS xmlrpc_client++) | |
1227 | +else(MUST_BUILD_CLIENT) | |
1228 | + list(APPEND test_SOURCES testclient_dummy.c) | |
1229 | +endif(MUST_BUILD_CLIENT) | |
1230 | + | |
1231 | +add_executable(src-test ${test_SOURCES}) | |
1232 | +target_link_libraries(src-test xmlrpc_server_abyss++ util ${test_LIBS}) | |
1233 | + | |
1234 | +enable_testing() | |
1235 | +add_test(runtests src-test) | |
1236 | diff --git a/src/cpp/xmlrpc++.pc.cmake b/src/cpp/xmlrpc++.pc.cmake | |
1237 | new file mode 100644 | |
91f35318 | 1238 | index 0000000..e99d81e |
65007067 ER |
1239 | --- /dev/null |
1240 | +++ b/src/cpp/xmlrpc++.pc.cmake | |
1241 | @@ -0,0 +1,12 @@ | |
1242 | +bindir=@bindir@ | |
1243 | +prefix=@prefix@ | |
1244 | +libdir=@libdir@ | |
1245 | +includedir=@includedir@ | |
1246 | + | |
91f35318 | 1247 | +Name: xmlrpc++ |
65007067 ER |
1248 | +Description: XMLRPC C++ Base library |
1249 | +Version: @XMLRPC_C_VERSION@ | |
1250 | + | |
1251 | +Requires.private: xmlrpc xmlrpc_util | |
91f35318 | 1252 | +Libs: -L${libdir} -lxmlrpc++ |
65007067 ER |
1253 | +Cflags: -I${includedir} |
1254 | diff --git a/src/cpp/xmlrpc_client++.pc.cmake b/src/cpp/xmlrpc_client++.pc.cmake | |
1255 | new file mode 100644 | |
91f35318 | 1256 | index 0000000..fe1f835 |
65007067 ER |
1257 | --- /dev/null |
1258 | +++ b/src/cpp/xmlrpc_client++.pc.cmake | |
1259 | @@ -0,0 +1,12 @@ | |
1260 | +bindir=@bindir@ | |
1261 | +prefix=@prefix@ | |
1262 | +libdir=@libdir@ | |
1263 | +includedir=@includedir@ | |
1264 | + | |
91f35318 | 1265 | +Name: xmlrpc_client++ |
65007067 ER |
1266 | +Description: XMLRPC C++ Client library |
1267 | +Version: @XMLRPC_C_VERSION@ | |
1268 | + | |
1269 | +Requires.private: xmlrpc++ xmlrpc_client xmlrpc_packetsocket xmlrpc xmlrpc_util | |
91f35318 | 1270 | +Libs: -L${libdir} -lxmlrpc_client++ |
65007067 ER |
1271 | +Cflags: -I${includedir} |
1272 | diff --git a/src/cpp/xmlrpc_cpp.pc.cmake b/src/cpp/xmlrpc_cpp.pc.cmake | |
1273 | new file mode 100644 | |
91f35318 | 1274 | index 0000000..9f94252 |
65007067 ER |
1275 | --- /dev/null |
1276 | +++ b/src/cpp/xmlrpc_cpp.pc.cmake | |
1277 | @@ -0,0 +1,12 @@ | |
1278 | +bindir=@bindir@ | |
1279 | +prefix=@prefix@ | |
1280 | +libdir=@libdir@ | |
1281 | +includedir=@includedir@ | |
1282 | + | |
91f35318 | 1283 | +Name: xmlrpc_cpp |
65007067 ER |
1284 | +Description: XMLRPC CPP library |
1285 | +Version: @XMLRPC_C_VERSION@ | |
1286 | + | |
1287 | +Requires.private: xmlrpc xmlrpc_server xmlrpc_util | |
91f35318 | 1288 | +Libs: -L${libdir} -lxmlrpc_cpp |
65007067 ER |
1289 | +Cflags: -I${includedir} |
1290 | diff --git a/src/cpp/xmlrpc_packetsocket.pc.cmake b/src/cpp/xmlrpc_packetsocket.pc.cmake | |
1291 | new file mode 100644 | |
91f35318 | 1292 | index 0000000..e168da3 |
65007067 ER |
1293 | --- /dev/null |
1294 | +++ b/src/cpp/xmlrpc_packetsocket.pc.cmake | |
1295 | @@ -0,0 +1,12 @@ | |
1296 | +bindir=@bindir@ | |
1297 | +prefix=@prefix@ | |
1298 | +libdir=@libdir@ | |
1299 | +includedir=@includedir@ | |
1300 | + | |
91f35318 | 1301 | +Name: xmlrpc_packetsocket |
65007067 ER |
1302 | +Description: XMLRPC C++ packsetsocket library |
1303 | +Version: @XMLRPC_C_VERSION@ | |
1304 | + | |
1305 | +Requires.private: xmlrpc++ | |
91f35318 | 1306 | +Libs: -L${libdir} -lxmlrpc_packetsocket |
65007067 ER |
1307 | +Cflags: -I${includedir} |
1308 | diff --git a/src/cpp/xmlrpc_server++.pc.cmake b/src/cpp/xmlrpc_server++.pc.cmake | |
1309 | new file mode 100644 | |
91f35318 | 1310 | index 0000000..5080b63 |
65007067 ER |
1311 | --- /dev/null |
1312 | +++ b/src/cpp/xmlrpc_server++.pc.cmake | |
1313 | @@ -0,0 +1,12 @@ | |
1314 | +bindir=@bindir@ | |
1315 | +prefix=@prefix@ | |
1316 | +libdir=@libdir@ | |
1317 | +includedir=@includedir@ | |
1318 | + | |
91f35318 | 1319 | +Name: xmlrpc_server++ |
65007067 ER |
1320 | +Description: XMLRPC C++ Server library |
1321 | +Version: @XMLRPC_C_VERSION@ | |
1322 | + | |
1323 | +Requires.private: xmlrpc++ xmlrpc_server xmlrpc xmlrpc_util | |
91f35318 | 1324 | +Libs: -L${libdir} -lxmlrpc_server++ |
65007067 ER |
1325 | +Cflags: -I${includedir} |
1326 | diff --git a/src/cpp/xmlrpc_server_abyss++.pc.cmake b/src/cpp/xmlrpc_server_abyss++.pc.cmake | |
1327 | new file mode 100644 | |
91f35318 | 1328 | index 0000000..f1d2198 |
65007067 ER |
1329 | --- /dev/null |
1330 | +++ b/src/cpp/xmlrpc_server_abyss++.pc.cmake | |
1331 | @@ -0,0 +1,12 @@ | |
1332 | +bindir=@bindir@ | |
1333 | +prefix=@prefix@ | |
1334 | +libdir=@libdir@ | |
1335 | +includedir=@includedir@ | |
1336 | + | |
91f35318 | 1337 | +Name: xmlrpc_server_abyss++ |
65007067 ER |
1338 | +Description: XMLRPC C++ Abyss-Server library |
1339 | +Version: @XMLRPC_C_VERSION@ | |
1340 | + | |
1341 | +Requires.private: xmlrpc_server++ xmlrpc_server_abyss xmlrpc++ xmlrpc_abyss xmlrpc_util | |
91f35318 | 1342 | +Libs: -L${libdir} -lxmlrpc_server_abyss++ |
65007067 ER |
1343 | +Cflags: -I${includedir} |
1344 | diff --git a/src/cpp/xmlrpc_server_cgi++.pc.cmake b/src/cpp/xmlrpc_server_cgi++.pc.cmake | |
1345 | new file mode 100644 | |
91f35318 | 1346 | index 0000000..9021564 |
65007067 ER |
1347 | --- /dev/null |
1348 | +++ b/src/cpp/xmlrpc_server_cgi++.pc.cmake | |
1349 | @@ -0,0 +1,12 @@ | |
1350 | +bindir=@bindir@ | |
1351 | +prefix=@prefix@ | |
1352 | +libdir=@libdir@ | |
1353 | +includedir=@includedir@ | |
1354 | + | |
91f35318 | 1355 | +Name: xmlrpc_server_cgi++ |
65007067 ER |
1356 | +Description: XMLRPC C++ CGI-Server library |
1357 | +Version: @XMLRPC_C_VERSION@ | |
1358 | + | |
1359 | +Requires.private: xmlrpc_server++ xmlrpc++ xmlrpc | |
91f35318 | 1360 | +Libs: -L${libdir} -lxmlrpc_server_cgi++ |
65007067 ER |
1361 | +Cflags: -I${includedir} |
1362 | diff --git a/src/cpp/xmlrpc_server_pstream++.pc.cmake b/src/cpp/xmlrpc_server_pstream++.pc.cmake | |
1363 | new file mode 100644 | |
91f35318 | 1364 | index 0000000..9b4819f |
65007067 ER |
1365 | --- /dev/null |
1366 | +++ b/src/cpp/xmlrpc_server_pstream++.pc.cmake | |
1367 | @@ -0,0 +1,12 @@ | |
1368 | +bindir=@bindir@ | |
1369 | +prefix=@prefix@ | |
1370 | +libdir=@libdir@ | |
1371 | +includedir=@includedir@ | |
1372 | + | |
91f35318 | 1373 | +Name: xmlrpc_server_pstream++ |
65007067 ER |
1374 | +Description: XMLRPC C++ pstream-Server library |
1375 | +Version: @XMLRPC_C_VERSION@ | |
1376 | + | |
1377 | +Requires.private: xmlrpc_server++ xmlrpc_packetsocket xmlrpc++ | |
91f35318 | 1378 | +Libs: -L${libdir} -lxmlrpc_server_pstream++ |
65007067 | 1379 | +Cflags: -I${includedir} |
65007067 ER |
1380 | diff --git a/src/xmlrpc.pc.cmake b/src/xmlrpc.pc.cmake |
1381 | new file mode 100644 | |
91f35318 | 1382 | index 0000000..7c098b8 |
65007067 ER |
1383 | --- /dev/null |
1384 | +++ b/src/xmlrpc.pc.cmake | |
1385 | @@ -0,0 +1,12 @@ | |
1386 | +bindir=@bindir@ | |
1387 | +prefix=@prefix@ | |
1388 | +libdir=@libdir@ | |
1389 | +includedir=@includedir@ | |
1390 | + | |
91f35318 | 1391 | +Name: xmlrpc |
65007067 ER |
1392 | +Description: XMLRPC base library |
1393 | +Version: @XMLRPC_C_VERSION@ | |
1394 | + | |
1395 | +Requires.private: @xmlrpc_pkgconfig_req@ xmlrpc_util | |
91f35318 | 1396 | +Libs: -L${libdir} -lxmlrpc @xmlrpc_pkgconfig_libs@ |
65007067 ER |
1397 | +Cflags: -I${includedir} |
1398 | diff --git a/src/xmlrpc_client.pc.cmake b/src/xmlrpc_client.pc.cmake | |
1399 | new file mode 100644 | |
91f35318 | 1400 | index 0000000..61543d4 |
65007067 ER |
1401 | --- /dev/null |
1402 | +++ b/src/xmlrpc_client.pc.cmake | |
1403 | @@ -0,0 +1,12 @@ | |
1404 | +bindir=@bindir@ | |
1405 | +prefix=@prefix@ | |
1406 | +libdir=@libdir@ | |
1407 | +includedir=@includedir@ | |
1408 | + | |
91f35318 | 1409 | +Name: xmlrpc_client |
65007067 ER |
1410 | +Description: XMLRPC client library |
1411 | +Version: @XMLRPC_C_VERSION@ | |
1412 | + | |
1413 | +Requires.private: xmlrpc @xmlrpc_client_pkgconfig_req@ xmlrpc_util | |
91f35318 | 1414 | +Libs: -L${libdir} -lxmlrpc_client @client_libwww_LIBS@ @client_wininet_LIBS@ |
65007067 ER |
1415 | +Cflags: -I${includedir} |
1416 | diff --git a/src/xmlrpc_server.pc.cmake b/src/xmlrpc_server.pc.cmake | |
1417 | new file mode 100644 | |
91f35318 | 1418 | index 0000000..cade53d |
65007067 ER |
1419 | --- /dev/null |
1420 | +++ b/src/xmlrpc_server.pc.cmake | |
1421 | @@ -0,0 +1,12 @@ | |
1422 | +bindir=@bindir@ | |
1423 | +prefix=@prefix@ | |
1424 | +libdir=@libdir@ | |
1425 | +includedir=@includedir@ | |
1426 | + | |
91f35318 | 1427 | +Name: xmlrpc_server |
65007067 ER |
1428 | +Description: XMLRPC Server library |
1429 | +Version: @XMLRPC_C_VERSION@ | |
1430 | + | |
1431 | +Requires.private: xmlrpc xmlrpc_util | |
91f35318 | 1432 | +Libs: -L${libdir} -lxmlrpc_server |
65007067 ER |
1433 | +Cflags: -I${includedir} |
1434 | diff --git a/src/xmlrpc_server_abyss.pc.cmake b/src/xmlrpc_server_abyss.pc.cmake | |
1435 | new file mode 100644 | |
91f35318 | 1436 | index 0000000..198c780 |
65007067 ER |
1437 | --- /dev/null |
1438 | +++ b/src/xmlrpc_server_abyss.pc.cmake | |
1439 | @@ -0,0 +1,12 @@ | |
1440 | +bindir=@bindir@ | |
1441 | +prefix=@prefix@ | |
1442 | +libdir=@libdir@ | |
1443 | +includedir=@includedir@ | |
1444 | + | |
91f35318 | 1445 | +Name: xmlrpc_server_abyss |
65007067 ER |
1446 | +Description: XMLRPC Server Abyss library |
1447 | +Version: @XMLRPC_C_VERSION@ | |
1448 | + | |
1449 | +Requires.private: xmlrpc_server xmlrpc_abyss xmlrpc xmlrpc_util | |
91f35318 | 1450 | +Libs: -L${libdir} -lxmlrpc_server_abyss |
65007067 ER |
1451 | +Cflags: -I${includedir} |
1452 | diff --git a/src/xmlrpc_server_cgi.pc.cmake b/src/xmlrpc_server_cgi.pc.cmake | |
1453 | new file mode 100644 | |
91f35318 | 1454 | index 0000000..748b550 |
65007067 ER |
1455 | --- /dev/null |
1456 | +++ b/src/xmlrpc_server_cgi.pc.cmake | |
1457 | @@ -0,0 +1,12 @@ | |
1458 | +bindir=@bindir@ | |
1459 | +prefix=@prefix@ | |
1460 | +libdir=@libdir@ | |
1461 | +includedir=@includedir@ | |
1462 | + | |
91f35318 | 1463 | +Name: xmlrpc_server_cgi |
65007067 ER |
1464 | +Description: XMLRPC CGI-Server library |
1465 | +Version: @XMLRPC_C_VERSION@ | |
1466 | + | |
1467 | +Requires.private: xmlrpc_server xmlrpc xmlrpc_util | |
91f35318 | 1468 | +Libs: -L${libdir} -lxmlrpc_server_cgi |
65007067 | 1469 | +Cflags: -I${includedir} |
91f35318 JB |
1470 | diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt |
1471 | new file mode 100644 | |
1472 | index 0000000..e712382 | |
1473 | --- /dev/null | |
1474 | +++ b/test/CMakeLists.txt | |
1475 | @@ -0,0 +1,41 @@ | |
1476 | +# -*- cmake -*- | |
1477 | + | |
1478 | +set(test_SOURCES | |
1479 | + abyss.c | |
1480 | + abyss.h | |
1481 | + test.c | |
1482 | + cgi.c | |
1483 | + method_registry.c | |
1484 | + parse_xml.c | |
1485 | + serialize.c | |
1486 | + serialize_value.c | |
1487 | + server_abyss.c | |
1488 | + testtool.c | |
1489 | + testtool.h | |
1490 | + value.c | |
1491 | + value_datetime.c | |
1492 | + xml_data.c) | |
1493 | + | |
1494 | +if(MUST_BUILD_CLIENT) | |
1495 | + list(APPEND test_SOURCES client.c) | |
1496 | + list(APPEND test_LIBS xmlrpc_client) | |
1497 | +else(MUST_BUILD_CLIENT) | |
1498 | + list(APPEND test_SOURCES client_dummy.c) | |
1499 | +endif(MUST_BUILD_CLIENT) | |
1500 | + | |
1501 | + | |
1502 | +add_executable(src-test ${test_SOURCES}) | |
1503 | +target_link_libraries(src-test xmlrpc_server_abyss util ${test_LIBS}) | |
1504 | + | |
1505 | +add_executable(src-cgitest1 cgitest1.c testtool.c testtool.h) | |
1506 | +target_link_libraries(src-cgitest1 xmlrpc_server_cgi) | |
1507 | + | |
1508 | +add_custom_command(TARGET src-test | |
1509 | + POST_BUILD | |
1510 | + COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/data | |
1511 | + COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/data ${CMAKE_CURRENT_BINARY_DIR}) | |
1512 | + | |
1513 | +enable_testing() | |
1514 | +add_test(runtests src-test) | |
1515 | + | |
1516 | +add_subdirectory(cpp) | |
1517 | diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt | |
1518 | new file mode 100644 | |
1519 | index 0000000..15a7c3a | |
1520 | --- /dev/null | |
1521 | +++ b/test/cpp/CMakeLists.txt | |
6df01d66 | 1522 | @@ -0,0 +1,36 @@ |
91f35318 JB |
1523 | +# -*- cmake -*- |
1524 | + | |
1525 | +set(testcpp_SOURCES | |
1526 | + test.cpp | |
6df01d66 | 1527 | + abyss.cpp |
91f35318 JB |
1528 | + base64.cpp |
1529 | + registry.cpp | |
1530 | + server_abyss.cpp | |
1531 | + server_pstream.cpp | |
1532 | + tools.cpp | |
1533 | + value.cpp | |
1534 | + xml.cpp) | |
1535 | + | |
1536 | +if(MUST_BUILD_CLIENT) | |
1537 | + list(APPEND testcpp_SOURCES testclient.cpp) | |
1538 | + list(APPEND testcpp_LIBS xmlrpc_client++) | |
1539 | +else(MUST_BUILD_CLIENT) | |
1540 | + list(APPEND testcpp_SOURCES testclient_dummy.c) | |
1541 | +endif(MUST_BUILD_CLIENT) | |
1542 | + | |
1543 | +if(DEFINED MSVCRT) | |
1544 | + list(APPEND testcpp_SOURCES ${CMAKE_SOURCE_DIR}/Windows/socketpair.cpp) | |
1545 | +endif(DEFINED MSVCRT) | |
1546 | + | |
1547 | +add_executable(src-testcpp ${testcpp_SOURCES}) | |
1548 | +target_link_libraries(src-testcpp | |
1549 | + xmlrpc++ | |
6df01d66 | 1550 | + xmlrpc_abyss++ |
91f35318 JB |
1551 | + xmlrpc_server++ |
1552 | + xmlrpc_server_abyss++ | |
1553 | + xmlrpc_server_pstream++ | |
1554 | + xmlrpc_cpp | |
1555 | + util ${testcpp_LIBS}) | |
1556 | + | |
1557 | +enable_testing() | |
1558 | +add_test(runtests src-testcpp) | |
65007067 ER |
1559 | diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt |
1560 | new file mode 100644 | |
91f35318 | 1561 | index 0000000..cd2a6d7 |
65007067 ER |
1562 | --- /dev/null |
1563 | +++ b/tools/CMakeLists.txt | |
91f35318 | 1564 | @@ -0,0 +1,22 @@ |
65007067 ER |
1565 | +# -*- cmake -*- |
1566 | + | |
1567 | +add_subdirectory(lib) | |
1568 | +add_subdirectory(binmode-rpc-kit) | |
1569 | +add_subdirectory(turbocharger) | |
91f35318 | 1570 | +add_subdirectory(xml) |
65007067 ER |
1571 | + |
1572 | +if (MUST_BUILD_CLIENT) | |
1573 | + add_subdirectory(xmlrpc) | |
1574 | + add_subdirectory(xmlrpc_transport) | |
1575 | + | |
1576 | + | |
1577 | + if (ENABLE_CPLUSPLUS) | |
1578 | + add_subdirectory(xml-rpc-api2cpp) | |
1579 | + add_subdirectory(xml-rpc-api2txt) | |
1580 | + add_subdirectory(xmlrpc_cpp_proxy) | |
1581 | + | |
1582 | + if (BUILD_XMLRPC_PSTREAM AND ENABLE_CGI_SERVER) | |
1583 | + add_subdirectory(xmlrpc_pstream) | |
1584 | + endif() | |
1585 | + endif() | |
1586 | +endif() | |
1587 | diff --git a/tools/binmode-rpc-kit/CMakeLists.txt b/tools/binmode-rpc-kit/CMakeLists.txt | |
1588 | new file mode 100644 | |
3671422b | 1589 | index 0000000..342423d |
65007067 ER |
1590 | --- /dev/null |
1591 | +++ b/tools/binmode-rpc-kit/CMakeLists.txt | |
3671422b | 1592 | @@ -0,0 +1 @@ |
65007067 | 1593 | +# -*- cmake -*- |
3671422b | 1594 | diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt |
65007067 ER |
1595 | new file mode 100644 |
1596 | index 0000000..342423d | |
1597 | --- /dev/null | |
3671422b | 1598 | +++ b/tools/lib/CMakeLists.txt |
65007067 ER |
1599 | @@ -0,0 +1 @@ |
1600 | +# -*- cmake -*- | |
1601 | diff --git a/tools/turbocharger/CMakeLists.txt b/tools/turbocharger/CMakeLists.txt | |
1602 | new file mode 100644 | |
1603 | index 0000000..342423d | |
1604 | --- /dev/null | |
1605 | +++ b/tools/turbocharger/CMakeLists.txt | |
1606 | @@ -0,0 +1 @@ | |
1607 | +# -*- cmake -*- | |
1608 | diff --git a/tools/xml-rpc-api2cpp/CMakeLists.txt b/tools/xml-rpc-api2cpp/CMakeLists.txt | |
1609 | new file mode 100644 | |
1610 | index 0000000..1e9134a | |
1611 | --- /dev/null | |
1612 | +++ b/tools/xml-rpc-api2cpp/CMakeLists.txt | |
1613 | @@ -0,0 +1,15 @@ | |
1614 | +# -*- cmake -*- | |
1615 | + | |
1616 | +add_executable(xml-rpc-api2cpp | |
1617 | + xml-rpc-api2cpp.cpp | |
1618 | + DataType.cpp | |
1619 | + XmlRpcFunction.cpp | |
1620 | + XmlRpcClass.cpp | |
1621 | + SystemProxy.cpp) | |
1622 | +target_link_libraries(xml-rpc-api2cpp xmlrpc_cpp xmlrpc_client) | |
1623 | + | |
1624 | +install(TARGETS xml-rpc-api2cpp | |
1625 | + RUNTIME DESTINATION bin) | |
1626 | + | |
1627 | +install(FILES xml-rpc-api2cpp.1 | |
1628 | + DESTINATION ${mandir}/man1) | |
1629 | diff --git a/tools/xml-rpc-api2txt/CMakeLists.txt b/tools/xml-rpc-api2txt/CMakeLists.txt | |
1630 | new file mode 100644 | |
1631 | index 0000000..5b01824 | |
1632 | --- /dev/null | |
1633 | +++ b/tools/xml-rpc-api2txt/CMakeLists.txt | |
1634 | @@ -0,0 +1,7 @@ | |
1635 | +# -*- cmake -*- | |
1636 | + | |
1637 | +install(PROGRAMS xml-rpc-api2txt | |
1638 | + DESTINATION ${bindir}) | |
1639 | + | |
1640 | +install(FILES xml-rpc-api2txt.1 | |
1641 | + DESTINATION ${mandir}/man1) | |
91f35318 JB |
1642 | diff --git a/tools/xml/CMakeLists.txt b/tools/xml/CMakeLists.txt |
1643 | new file mode 100644 | |
1644 | index 0000000..0bab80c | |
1645 | --- /dev/null | |
1646 | +++ b/tools/xml/CMakeLists.txt | |
1647 | @@ -0,0 +1,16 @@ | |
1648 | +# -*- cmake -*- | |
1649 | + | |
1650 | +add_executable(xmlrpc_parsecall | |
1651 | + xmlrpc_parsecall.c | |
1652 | + ../lib/dumpvalue.c) | |
1653 | + | |
1654 | +target_link_libraries(xmlrpc_parsecall | |
1655 | + xmlrpc | |
1656 | + util) | |
1657 | + | |
1658 | +install(TARGETS xmlrpc_parsecall | |
1659 | + DESTINATION ${_bin}) | |
1660 | + | |
1661 | +include_directories(../lib/include) | |
1662 | + | |
1663 | +ensc_set_link_exe_flags(xmlrpc_parsecall) | |
65007067 ER |
1664 | diff --git a/tools/xmlrpc/CMakeLists.txt b/tools/xmlrpc/CMakeLists.txt |
1665 | new file mode 100644 | |
1666 | index 0000000..da01ec3 | |
1667 | --- /dev/null | |
1668 | +++ b/tools/xmlrpc/CMakeLists.txt | |
1669 | @@ -0,0 +1,17 @@ | |
1670 | +# -*- cmake -*- | |
1671 | + | |
1672 | +#set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES ../lib/include) | |
1673 | + | |
1674 | +include_directories(../lib/include) | |
1675 | +add_executable(tool-xmlrpc | |
1676 | + xmlrpc.c | |
1677 | + ../lib/dumpvalue.c) | |
1678 | +target_link_libraries(tool-xmlrpc xmlrpc_client util) | |
1679 | + | |
1680 | +set_target_properties(tool-xmlrpc | |
1681 | + PROPERTIES OUTPUT_NAME xmlrpc) | |
1682 | + | |
1683 | +install(TARGETS tool-xmlrpc | |
1684 | + DESTINATION ${_bin}) | |
1685 | + | |
1686 | +ensc_set_link_exe_flags(tool-xmlrpc) | |
1687 | diff --git a/tools/xmlrpc/config.h b/tools/xmlrpc/config.h | |
1688 | new file mode 100644 | |
1689 | index 0000000..7409aed | |
1690 | --- /dev/null | |
1691 | +++ b/tools/xmlrpc/config.h | |
1692 | @@ -0,0 +1 @@ | |
1693 | +#include <xmlrpc_config.h> | |
1694 | diff --git a/tools/xmlrpc_cpp_proxy/CMakeLists.txt b/tools/xmlrpc_cpp_proxy/CMakeLists.txt | |
1695 | new file mode 100644 | |
1696 | index 0000000..4166023 | |
1697 | --- /dev/null | |
1698 | +++ b/tools/xmlrpc_cpp_proxy/CMakeLists.txt | |
1699 | @@ -0,0 +1,17 @@ | |
1700 | +# -*- cmake -*- | |
1701 | + | |
1702 | +add_executable(xmlrpc_cpp_proxy | |
1703 | + proxyClass.cpp | |
1704 | + proxyClass.hpp | |
1705 | + systemProxy.cpp | |
1706 | + systemProxy.hpp | |
1707 | + xmlrpcMethod.cpp | |
1708 | + xmlrpcMethod.hpp | |
1709 | + xmlrpcType.cpp | |
1710 | + xmlrpcType.hpp | |
1711 | + xmlrpc_cpp_proxy.cpp | |
1712 | +) | |
1713 | +target_link_libraries(xmlrpc_cpp_proxy xmlrpc_client++) | |
1714 | + | |
1715 | +install(TARGETS xmlrpc_cpp_proxy | |
1716 | + RUNTIME DESTINATION bin) | |
1717 | diff --git a/tools/xmlrpc_pstream/CMakeLists.txt b/tools/xmlrpc_pstream/CMakeLists.txt | |
1718 | new file mode 100644 | |
1719 | index 0000000..b277bc8 | |
1720 | --- /dev/null | |
1721 | +++ b/tools/xmlrpc_pstream/CMakeLists.txt | |
1722 | @@ -0,0 +1,16 @@ | |
1723 | +# -*- cmake -*- | |
1724 | + | |
1725 | +add_executable(xmlrpc_pstream | |
1726 | + xmlrpc_pstream.cpp | |
1727 | + ../lib/dumpvalue.c) | |
1728 | + | |
1729 | +target_link_libraries(xmlrpc_pstream | |
1730 | + ${READLINE} | |
1731 | + ${NCURSES_LIBRARIES} | |
1732 | + xmlrpc_client++ | |
1733 | + util) | |
1734 | + | |
1735 | +include_directories(../lib/include) | |
1736 | + | |
1737 | +install(TARGETS xmlrpc_pstream | |
1738 | + RUNTIME DESTINATION bin) | |
1739 | diff --git a/tools/xmlrpc_transport/CMakeLists.txt b/tools/xmlrpc_transport/CMakeLists.txt | |
1740 | new file mode 100644 | |
1741 | index 0000000..b73d7c0 | |
1742 | --- /dev/null | |
1743 | +++ b/tools/xmlrpc_transport/CMakeLists.txt | |
1744 | @@ -0,0 +1,9 @@ | |
1745 | +# -*- cmake -*- | |
1746 | + | |
1747 | +add_executable(xmlrpc_transport xmlrpc_transport.c) | |
1748 | +target_link_libraries(xmlrpc_transport xmlrpc_client util) | |
1749 | + | |
1750 | +install(TARGETS xmlrpc_transport | |
1751 | + DESTINATION ${_bin}) | |
1752 | + | |
1753 | +ensc_set_link_exe_flags(xmlrpc_transport) | |
1754 | diff --git a/tools/xmlrpc_transport/config.h b/tools/xmlrpc_transport/config.h | |
1755 | new file mode 100644 | |
1756 | index 0000000..7409aed | |
1757 | --- /dev/null | |
1758 | +++ b/tools/xmlrpc_transport/config.h | |
1759 | @@ -0,0 +1 @@ | |
1760 | +#include <xmlrpc_config.h> | |
1761 | diff --git a/transport_config.h.cmake b/transport_config.h.cmake | |
1762 | new file mode 100644 | |
1763 | index 0000000..1ec3cf6 | |
1764 | --- /dev/null | |
1765 | +++ b/transport_config.h.cmake | |
1766 | @@ -0,0 +1,16 @@ | |
1767 | +/* -*- c -*- */ | |
1768 | +#define MUST_BUILD_WININET_CLIENT @_MUST_BUILD_WININET_CLIENT@ | |
1769 | +#define MUST_BUILD_LIBWWW_CLIENT @_MUST_BUILD_LIBWWW_CLIENT@ | |
1770 | +#define MUST_BUILD_CURL_CLIENT @_MUST_BUILD_CURL_CLIENT@ | |
1771 | + | |
1772 | +static char const * const XMLRPC_DEFAULT_TRANSPORT = | |
1773 | +#if MUST_BUILD_LIBWWW_CLIENT | |
1774 | + "libwww" | |
1775 | +#elif MUST_BUILD_CURL_CLIENT | |
1776 | + "curl" | |
1777 | +#elif MUST_BUILD_WININET_CLIENT | |
1778 | + "wininet" | |
1779 | +#else | |
1780 | +# error "no client XML transport configured" | |
1781 | +#endif | |
1782 | + ; | |
1783 | diff --git a/version.h.cmake b/version.h.cmake | |
1784 | new file mode 100644 | |
1785 | index 0000000..0c964a3 | |
1786 | --- /dev/null | |
1787 | +++ b/version.h.cmake | |
1788 | @@ -0,0 +1,5 @@ | |
1789 | +/* This file was generated by a make rule */ | |
1790 | +#define XMLRPC_C_VERSION "@XMLRPC_C_VERSION@" | |
1791 | +#define XMLRPC_VERSION_MAJOR @XMLRPC_C_VERSION_MAJOR_NUM@ | |
1792 | +#define XMLRPC_VERSION_MINOR @XMLRPC_C_VERSION_MINOR_NUM@ | |
1793 | +#define XMLRPC_VERSION_POINT @XMLRPC_C_VERSION_POINT_NUM@ | |
1794 | diff --git a/xmlrpc-c-config b/xmlrpc-c-config | |
1795 | new file mode 100755 | |
3671422b | 1796 | index 0000000..50577fd |
65007067 ER |
1797 | --- /dev/null |
1798 | +++ b/xmlrpc-c-config | |
6df01d66 | 1799 | @@ -0,0 +1,110 @@ |
65007067 ER |
1800 | +#! /bin/sh |
1801 | + | |
3671422b | 1802 | +comp= |
65007067 ER |
1803 | + |
1804 | +need_cxx= | |
1805 | +need_client= | |
1806 | +need_server= | |
1807 | +need_abyss= | |
6df01d66 | 1808 | +need_abysssrv= |
65007067 ER |
1809 | +need_pstream= |
1810 | +need_packetsocket= | |
1811 | +need_cgi= | |
1812 | + | |
1813 | +show_help() { | |
1814 | + cat <<EOF | |
1815 | +Usage: xmlrpc-c-config <feature> ... <option> ... | |
1816 | + | |
1817 | +The features are: | |
1818 | + c++ legacy C++ wrapper API | |
1819 | + c++2 modern C++ API | |
1820 | + client client functions | |
1821 | + cgi-server CGI-based server functions | |
1822 | + abyss-server ABYSS-based server functions | |
1823 | + pstream-server pstream-based server functions | |
1824 | + server-util basic server functions (implied by *-server) | |
6df01d66 | 1825 | + abyss Abyss HTTP server (not necessary with abyss-server) |
65007067 ER |
1826 | + |
1827 | +Options are: | |
1828 | + --version The version number of the package | |
1829 | + --features List all features (aka modules) currently installed | |
1830 | + --cflags C compiler flags to use when '#include'ing package headers | |
1831 | + --libs Libraries and flags to use when linking programs normally | |
1832 | + --ldadd Libraries to use with automake | |
1833 | + --ldflags Flags to use with automake & libtool | |
1834 | + --prefix The prefix under which the package was installed | |
1835 | +EOF | |
1836 | + exit $1 | |
1837 | +} | |
1838 | + | |
1839 | +test $# -ne 0 || show_help 1 >&2 | |
1840 | + | |
1841 | +while test $# -gt 0; do | |
1842 | + case $1 in | |
1843 | + (c++) comp="$comp xmlrpc_cpp";; | |
1844 | + (server-util) need_server=1;; | |
1845 | + (cgi-server) need_cgi=1;; | |
1846 | + (c++2) need_cxx=1;; | |
6df01d66 | 1847 | + (abyss-server) need_abysssrv=1;; |
65007067 ER |
1848 | + (pstream-server) need_pstream=1;; |
1849 | + (packetsocket) need_packetsocket=1;; | |
1850 | + (client|libwww-client) need_client=1;; | |
6df01d66 | 1851 | + (abyss) need_abyss=1;; |
65007067 ER |
1852 | + (--help) show_help 0;; |
1853 | + (--) shift; break;; | |
1854 | + (--*) break;; | |
1855 | + (*) | |
1856 | + echo "Unrecognized token '$1'" | |
1857 | + exit 1 | |
1858 | + ;; | |
1859 | + esac | |
1860 | + shift | |
1861 | +done | |
1862 | + | |
1863 | +if test -z "$need_cxx"; then | |
1864 | + test -z "$need_client" || comp="$comp xmlrpc_client" | |
6df01d66 JB |
1865 | + test -z "$need_abysssrv" || comp="$comp xmlrpc_server_abyss" |
1866 | + test -z "$need_abyss" || comp="$comp xmlrpc_server" | |
65007067 ER |
1867 | + test -z "$need_server" || comp="$comp xmlrpc_server" |
1868 | + test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi" | |
1869 | +else | |
1870 | + test -z "$need_client" || comp="$comp xmlrpc_client++" | |
6df01d66 JB |
1871 | + test -z "$need_abysssrv" || comp="$comp xmlrpc_server_abyss++" |
1872 | + test -z "$need_abyss" || comp="$comp xmlrpc_abyss++" | |
65007067 ER |
1873 | + test -z "$need_server" || comp="$comp xmlrpc_server++" |
1874 | + test -z "$need_cgi" || comp="$comp xmlrpc_server_cgi++" | |
1875 | +fi | |
1876 | + | |
1877 | +test -z "$need_pstream" || comp="$comp xmlrpc_server_pstream++" | |
1878 | +test -z "$need_packetsocket" || comp="$comp xmlrpc_packetsocket" | |
3671422b | 1879 | +test -n "$comp" || comp="xmlrpc xmlrpc_util" |
65007067 ER |
1880 | + |
1881 | +case $1 in | |
1882 | + (--features|--modules) | |
1883 | + echo "c++ abyss-server curl-client" | |
1884 | + exit 0 | |
1885 | + ;; | |
1886 | + (--version) | |
3671422b | 1887 | + comp=xmlrpc |
65007067 ER |
1888 | + set -- --modversion |
1889 | + ;; | |
1890 | + (--exec-prefix) | |
3671422b | 1891 | + comp=xmlrpc |
65007067 ER |
1892 | + set -- --variable=prefix |
1893 | + ;; | |
1894 | + (--*dir|--prefix) | |
3671422b | 1895 | + comp=xmlrpc |
65007067 ER |
1896 | + set -- --variable=${1##--} |
1897 | + ;; | |
1898 | + (--ldflags) | |
1899 | + set -- --libs-only-L | |
1900 | + ;; | |
1901 | + (--ldadd) | |
1902 | + set -- --libs-only-l | |
1903 | + ;; | |
1904 | + (--cflags) | |
1905 | + set -- "$1" | |
1906 | + ;; | |
65007067 ER |
1907 | +esac |
1908 | + | |
65007067 ER |
1909 | +exec pkg-config "$@" $comp |
1910 | diff --git a/xmlrpc_config.h.cmake b/xmlrpc_config.h.cmake | |
1911 | new file mode 100644 | |
91f35318 | 1912 | index 0000000..9eff724 |
65007067 ER |
1913 | --- /dev/null |
1914 | +++ b/xmlrpc_config.h.cmake | |
6df01d66 | 1915 | @@ -0,0 +1,184 @@ |
65007067 ER |
1916 | +/* -*- c -*- */ |
1917 | + | |
1918 | +#ifndef H_XMLRPC_C_CONFIG_H | |
1919 | + | |
3671422b JB |
1920 | +#define HAVE_SYS_IOCTL_H 0@HAVE_SYS_IOCTL_H@ |
1921 | +#define HAVE_SYS_SELECT_H_DEFINE 0@HAVE_SYS_IOCTL_H@ | |
65007067 ER |
1922 | + |
1923 | +#define VA_LIST_IS_ARRAY @VA_LIST_IS_ARRAY@ | |
1924 | +#define XMLRPC_HAVE_WCHAR @XMLRPC_HAVE_WCHAR@ | |
1925 | +#define ATTR_UNUSED @ATTR_UNUSED@ | |
1926 | +#define DIRECTORY_SEPARATOR "@DIRECTORY_SEPARATOR@" | |
1927 | + | |
3671422b | 1928 | +#cmakedefine HAVE_SYS_SELECT_H 1 |
65007067 ER |
1929 | +#cmakedefine HAVE_WCHAR_H 1 |
1930 | +#cmakedefine HAVE_SETENV 1 | |
1931 | +#cmakedefine HAVE_STRCASECMP 1 | |
1932 | +#cmakedefine HAVE__STRICMP 1 | |
1933 | +#cmakedefine HAVE_STRICMP 1 | |
1934 | +#cmakedefine HAVE_GETTIMEOFDAY 1 | |
1935 | +#cmakedefine HAVE_SETGROUPS 1 | |
1936 | +#cmakedefine HAVE_ASPRINTF 1 | |
1937 | +#cmakedefine HAVE_PSELECT 1 | |
1938 | +#cmakedefine HAVE_WCSNCMP 1 | |
1939 | +#cmakedefine HAVE_LOCALTIME_R 1 | |
1940 | +#cmakedefine HAVE_GMTIME_R 1 | |
3671422b JB |
1941 | +#cmakedefine HAVE_STRTOLL 1 |
1942 | +#cmakedefine HAVE___STRTOLL 1 | |
1943 | +#cmakedefine HAVE_STRTOULL 1 | |
1944 | +#cmakedefine HAVE___STRTOULL 1 | |
1945 | +#cmakedefine HAVE_STRTOQ 1 | |
1946 | +#cmakedefine HAVE_STRTOUQ 1 | |
65007067 ER |
1947 | + |
1948 | +#define HAVE_UNICODE_WCHAR HAVE_WCHAR_H | |
1949 | + | |
1950 | +/* Xmlrpc-c code uses __inline__ to declare functions that should | |
1951 | + be compiled as inline code. GNU C recognizes the __inline__ keyword. | |
1952 | + Others recognize 'inline' or '__inline' or nothing at all to say | |
1953 | + a function should be inlined. | |
1954 | + | |
1955 | + We could make 'configure' simply do a trial compile to figure out | |
1956 | + which one, but for now, this approximation is easier: | |
1957 | +*/ | |
1958 | +#if (!defined(__GNUC__)) | |
1959 | + #if (!defined(__inline__)) | |
1960 | + #if (defined(__sgi) || defined(_AIX) || defined(_MSC_VER)) | |
1961 | + #define __inline__ __inline | |
1962 | + #else | |
1963 | + #define __inline__ | |
1964 | + #endif | |
1965 | + #endif | |
1966 | +#endif | |
1967 | + | |
1968 | +/* MSVCRT means we're using the Microsoft Visual C++ runtime library */ | |
1969 | + | |
91f35318 JB |
1970 | +#if defined(_MSC_VER) |
1971 | + /* The compiler is Microsoft Visual C++ */ | |
65007067 | 1972 | + #define MSVCRT _MSC_VER |
91f35318 JB |
1973 | +#elif defined(__MINGW32__) |
1974 | + /* The compiler is Mingw, which is the Windows version of the GNU | |
1975 | + compiler. Programs built with this normally use the Microsoft Visual | |
1976 | + C++ runtime library. | |
1977 | + */ | |
1978 | + #define MSVCRT 1 | |
65007067 ER |
1979 | +#else |
1980 | + #define MSVCRT 0 | |
1981 | +#endif | |
1982 | + | |
1983 | +#if MSVCRT | |
1984 | + /* The MSVC runtime library _does_ have a 'struct timeval', but it is | |
1985 | + part of the Winsock interface (along with select(), which is probably | |
1986 | + its intended use), so isn't intended for use for general timekeeping. | |
1987 | + */ | |
1988 | + #define HAVE_TIMEVAL 0 | |
1989 | + #define HAVE_TIMESPEC 0 | |
1990 | +#else | |
1991 | + #define HAVE_TIMEVAL 1 | |
1992 | + /* timespec is Posix.1b. If we need to work on a non-Posix.1b non-Windows | |
1993 | + system, we'll have to figure out how to make Configure determine this. | |
1994 | + */ | |
1995 | + #define HAVE_TIMESPEC 1 | |
1996 | +#endif | |
1997 | + | |
1998 | +#if MSVCRT | |
3671422b JB |
1999 | + #define HAVE_WINDOWS_THREAD 1 |
2000 | +#else | |
2001 | + #define HAVE_WINDOWS_THREAD 0 | |
2002 | +#endif | |
2003 | + | |
2004 | +#define HAVE_PTHREAD 1 | |
2005 | + | |
91f35318 JB |
2006 | +/* Note that the return value of XMLRPC_VSNPRINTF is int on Windows, |
2007 | + ssize_t on POSIX. | |
2008 | +*/ | |
3671422b | 2009 | +#if MSVCRT |
6df01d66 | 2010 | + #define XMLRPC_SNPRINTF _snprintf |
65007067 ER |
2011 | + #define XMLRPC_VSNPRINTF _vsnprintf |
2012 | +#else | |
6df01d66 | 2013 | + #define XMLRPC_SNPRINTF snprintf |
65007067 ER |
2014 | + #define XMLRPC_VSNPRINTF vsnprintf |
2015 | +#endif | |
2016 | + | |
2017 | +#if MSVCRT | |
2018 | + #define HAVE_REGEX 0 | |
2019 | +#else | |
2020 | + #define HAVE_REGEX 1 | |
2021 | +#endif | |
2022 | + | |
2023 | +#if MSVCRT | |
2024 | + #define XMLRPC_SOCKETPAIR xmlrpc_win32_socketpair | |
3671422b | 2025 | + #define XMLRPC_CLOSESOCKET closesocket |
65007067 ER |
2026 | +#else |
2027 | + #define XMLRPC_SOCKETPAIR socketpair | |
3671422b | 2028 | + #define XMLRPC_CLOSESOCKET close |
65007067 ER |
2029 | +#endif |
2030 | + | |
91f35318 | 2031 | +#if defined(_MSC_VER) && (_MSC_VER >= 1400) |
65007067 ER |
2032 | +/* Starting with MSVC 8, the runtime library defines various POSIX functions |
2033 | + such as strdup() whose names violate the ISO C standard (the standard | |
2034 | + says the strXXX names are reserved for the standard), but warns you of | |
2035 | + the standards violation. That warning is 4996, along with other warnings | |
2036 | + that tell you you're using a function that Microsoft thinks you | |
2037 | + shouldn't. | |
2038 | + | |
2039 | + Well, POSIX is more important than that element of ISO C, so we disable | |
2040 | + that warning. | |
2041 | + | |
2042 | + FYI, msvcrt also defines _strdup(), etc, which doesn't violate the | |
2043 | + naming standard. But since other environments don't define _strdup(), | |
2044 | + we can't use it in portable code. | |
2045 | +*/ | |
2046 | +#pragma warning(disable:4996) | |
2047 | +#endif | |
2048 | + | |
3671422b JB |
2049 | +#if HAVE_STRTOLL |
2050 | + # define XMLRPC_STRTOLL strtoll | |
2051 | +#elif HAVE_STRTOQ | |
2052 | + # define XMLRPC_STRTOLL strtoq /* Interix */ | |
2053 | +#elif HAVE___STRTOLL | |
2054 | + # define XMLRPC_STRTOLL __strtoll /* HP-UX <= 11.11 */ | |
2055 | +#elif HAVE__STRTOUI64 | |
2056 | + #define XMLRPC_STRTOLL _strtoui64 /* Windows MSVC */ | |
2057 | +#endif | |
2058 | + | |
2059 | +#if HAVE_STRTOULL | |
2060 | + # define XMLRPC_STRTOULL strtoull | |
2061 | +#elif HAVE_STRTOUQ | |
2062 | + # define XMLRPC_STRTOULL strtouq /* Interix */ | |
2063 | +#elif HAVE___STRTOULL | |
2064 | + # define XMLRPC_STRTOULL __strtoull /* HP-UX <= 11.11 */ | |
2065 | +#elif HAVE__STRTOUI64 | |
2066 | + #define XMLRPC_STRTOULL _strtoui64 /* Windows MSVC */ | |
2067 | +#endif | |
2068 | + | |
91f35318 | 2069 | +#if MSVCRT |
91f35318 JB |
2070 | + #define popen _popen |
2071 | +#endif | |
2072 | + | |
3671422b JB |
2073 | +#define XMLRPC_INT64 int64_t |
2074 | +#define XMLRPC_PRId64 PRId64 | |
2075 | + | |
91f35318 JB |
2076 | +/* S_IRUSR is POSIX, defined in <sys/stat.h> Some old BSD systems and Windows |
2077 | + systems have S_IREAD instead. Most Unix today (2011) has both. In 2011, | |
2078 | + Android has S_IRUSR and not S_IREAD. | |
2079 | + | |
2080 | + Some Windows has _S_IREAD. | |
2081 | + | |
2082 | + We're ignoring S_IREAD now to see if anyone misses it. If there are still | |
2083 | + users that need it, we can handle it here. | |
2084 | +*/ | |
2085 | +#if MSVCRT | |
2086 | + #define XMLRPC_S_IWUSR _S_IWRITE | |
2087 | + #define XMLRPC_S_IRUSR _S_IREAD | |
2088 | +#else | |
2089 | + #define XMLRPC_S_IWUSR S_IWUSR | |
2090 | + #define XMLRPC_S_IRUSR S_IRUSR | |
2091 | +#endif | |
2092 | + | |
2093 | +#if MSVCRT | |
2094 | + #define XMLRPC_CHDIR _chdir | |
2095 | +#else | |
2096 | + #define XMLRPC_CHDIR chdir | |
2097 | +#endif | |
3671422b | 2098 | + |
65007067 ER |
2099 | +#endif |
2100 | -- | |
91f35318 | 2101 | 1.7.10.4 |
65007067 | 2102 |