Resync
[CMakeLuaTailorHgBridge.git] / CMakeLua / Utilities / cmxmlrpc / CMakeLists.txt
blobe3f42c8397504b337401763e3f36c6cf229e3c3b
1 PROJECT(XMLRPC)
3 INCLUDE_REGULAR_EXPRESSION("^.*$")
5 # Disable warnings on Borland to avoid changing 3rd party code.
6 IF(BORLAND)
7   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-")
8 ENDIF(BORLAND)
10 # Include all the necessary files for macros
11 SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
13 # Check if header file exists and add it to the list.
14 SET(CURRENT_INCLUDES)
15 INCLUDE (CheckIncludeFiles)
16 MACRO(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
17   CHECK_INCLUDE_FILES("${CURRENT_INCLUDES};${FILE}" ${VARIABLE})
18   IF(${VARIABLE})
19     SET(CURRENT_INCLUDES ${CURRENT_INCLUDES} ${FILE})
20   ENDIF(${VARIABLE})
21 ENDMACRO(CHECK_INCLUDE_FILE_CONCAT)
23 CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H)
24 CHECK_INCLUDE_FILE_CONCAT("stdarg.h" HAVE_STDARG_H)
25 CHECK_INCLUDE_FILE_CONCAT("sys/filio.h" HAVE_SYS_FILIO_H)
26 CHECK_INCLUDE_FILE_CONCAT("sys/ioctl.h" HAVE_SYS_IOCTL_H)
27 CHECK_INCLUDE_FILE_CONCAT("wchar.h" HAVE_WCHAR_H)
29 IF(HAVE_WCHAR_H)
30   OPTION(HAVE_UNICODE_WCHAR "Enable Unicode Support" YES)
31   MARK_AS_ADVANCED(HAVE_UNICODE_WCHAR)
32 ELSE(HAVE_WCHAR_H)
33   SET(HAVE_UNICODE_WCHAR 0)
34 ENDIF(HAVE_WCHAR_H)
36 INCLUDE (CheckSymbolExists)
37 CHECK_SYMBOL_EXISTS(asprintf "${CURRENT_INCLUDES}" HAVE_ASPRINTF)
38 CHECK_SYMBOL_EXISTS(setgroups "${CURRENT_INCLUDES}" HAVE_SETGROUPS)
40 INCLUDE (CheckTypeSize)
41 CHECK_TYPE_SIZE(size_t  SIZEOF_SIZE_T)
43 INCLUDE (TryCompileFromSource)
44 SET(HEADER_INCLUDES "${CURRENT_INCLUDES}")
45 TRY_COMPILE_FROM_SOURCE("va_list list1, list2; list1 = list2"
46   VA_LIST_ISNOT_ARRAY_DEFINE)
47 TRY_COMPILE_FROM_SOURCE("va_list list1, list2; va_copy(list1, list2);"
48   HAS_VA_COPY)
49 SET(VA_LIST_IS_ARRAY_DEFINE 0)
50 IF(NOT VA_LIST_ISNOT_ARRAY_DEFINE)
51   SET(VA_LIST_IS_ARRAY_DEFINE 1)
52 ENDIF(NOT VA_LIST_ISNOT_ARRAY_DEFINE)
53 TRY_COMPILE_FROM_SOURCE("int x __attribute__((__unused__))"
54   ATTR_UNUSED_VAR)
55 SET(ATTR_UNUSED)
56 IF(ATTR_UNUSED_VAR)
57   SET(ATTR_UNUSED "__attribute__((__unused__))")
58 ENDIF(ATTR_UNUSED_VAR)
60 SET(HAVE_LIBWWW_SSL)
61 SET(DIRECTORY_SEPARATOR "/")
63 SET(HAVE_PTHREADS 0)
64 IF(CMAKE_BUILD_XMLRPC_WITH_THREADS)
65   FIND_PACKAGE(Threads)
66   IF(WIN32 OR CMAKE_USE_PTHREADS_INIT)
67     SET(HAVE_PTHREADS 1)
68   ENDIF(WIN32 OR CMAKE_USE_PTHREADS_INIT)
69 ENDIF(CMAKE_BUILD_XMLRPC_WITH_THREADS)
71 INCLUDE_DIRECTORIES(
72   "${CMAKE_CURRENT_SOURCE_DIR}"
73   "${CMAKE_CURRENT_BINARY_DIR}"
74   ${CMAKE_EXPAT_INCLUDES}
75   ${CMAKE_CURL_INCLUDES}
76   )
78 CONFIGURE_FILE(
79   "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_config.h.in"
80   "${CMAKE_CURRENT_BINARY_DIR}/xmlrpc_config.h"
81   )
82 CONFIGURE_FILE(
83   "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_amconfig.h.in"
84   "${CMAKE_CURRENT_BINARY_DIR}/xmlrpc_amconfig.h"
85   )
87 SET(xmlrpc_SRCS
88   #XmlRpcCpp.cpp
89   xmlrpc_array.c
90   xmlrpc_authcookie.c
91   xmlrpc_base64.c
92   xmlrpc_client.c
93   xmlrpc_data.c
94   xmlrpc_expat.c
95   xmlrpc_parse.c
96   xmlrpc_registry.c
97   xmlrpc_serialize.c
98   xmlrpc_curl_transport.c
99   #xmlrpc_server_abyss.c
100   xmlrpc_struct.c
101   xmlrpc_strutil.c
102   xmlrpc_support.c
103   casprintf.c
104   )
105 IF(HAVE_UNICODE_WCHAR)
106   SET(xmlrpc_SRCS
107     ${xmlrpc_SRCS}
108     xmlrpc_utf8.c
109     )
110 ENDIF(HAVE_UNICODE_WCHAR)
111 IF(WIN32)
112   SET(xmlrpc_SRCS ${xmlrpc_SRCS}
113     win32_pthreads.c
114     )
115 ENDIF(WIN32)
117 ADD_LIBRARY(cmXMLRPC ${xmlrpc_SRCS})
118 TARGET_LINK_LIBRARIES(cmXMLRPC ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_CURL_LIBRARIES})
119 IF(HAVE_PTHREADS)
120   TARGET_LINK_LIBRARIES(cmXMLRPC ${CMAKE_THREAD_LIBS_INIT})
121 ENDIF(HAVE_PTHREADS)
123 ADD_EXECUTABLE(xrtest synch_client.c)
124 TARGET_LINK_LIBRARIES(xrtest cmXMLRPC ${CMAKE_DL_LIBS})
126 # comment out test since it doesn pass and Andy doesn;t seem to be fixing it,
127 # for now assume that XMLRPC is not production quality code - Ken
128 # ADD_TEST(Test-XMLRPC ${EXECUTABLE_OUTPUT_PATH}/xrtest)