| PROJECT(XMLRPC) |
| |
| INCLUDE_REGULAR_EXPRESSION("^.*$") |
| |
| # Disable warnings on Borland to avoid changing 3rd party code. |
| IF(BORLAND) |
| SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-") |
| ENDIF(BORLAND) |
| |
| # Include all the necessary files for macros |
| SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake") |
| |
| # Check if header file exists and add it to the list. |
| SET(CURRENT_INCLUDES) |
| INCLUDE (CheckIncludeFiles) |
| MACRO(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE) |
| CHECK_INCLUDE_FILES("${CURRENT_INCLUDES};${FILE}" ${VARIABLE}) |
| IF(${VARIABLE}) |
| SET(CURRENT_INCLUDES ${CURRENT_INCLUDES} ${FILE}) |
| ENDIF(${VARIABLE}) |
| ENDMACRO(CHECK_INCLUDE_FILE_CONCAT) |
| |
| CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H) |
| CHECK_INCLUDE_FILE_CONCAT("stdarg.h" HAVE_STDARG_H) |
| CHECK_INCLUDE_FILE_CONCAT("sys/filio.h" HAVE_SYS_FILIO_H) |
| CHECK_INCLUDE_FILE_CONCAT("sys/ioctl.h" HAVE_SYS_IOCTL_H) |
| CHECK_INCLUDE_FILE_CONCAT("wchar.h" HAVE_WCHAR_H) |
| |
| IF(HAVE_WCHAR_H) |
| OPTION(HAVE_UNICODE_WCHAR "Enable Unicode Support" YES) |
| MARK_AS_ADVANCED(HAVE_UNICODE_WCHAR) |
| ELSE(HAVE_WCHAR_H) |
| SET(HAVE_UNICODE_WCHAR 0) |
| ENDIF(HAVE_WCHAR_H) |
| |
| INCLUDE (CheckSymbolExists) |
| CHECK_SYMBOL_EXISTS(asprintf "${CURRENT_INCLUDES}" HAVE_ASPRINTF) |
| CHECK_SYMBOL_EXISTS(setgroups "${CURRENT_INCLUDES}" HAVE_SETGROUPS) |
| |
| INCLUDE (CheckTypeSize) |
| CHECK_TYPE_SIZE(size_t SIZEOF_SIZE_T) |
| |
| INCLUDE (TryCompileFromSource) |
| SET(HEADER_INCLUDES "${CURRENT_INCLUDES}") |
| TRY_COMPILE_FROM_SOURCE("va_list list1, list2; list1 = list2" |
| VA_LIST_ISNOT_ARRAY_DEFINE) |
| TRY_COMPILE_FROM_SOURCE("va_list list1, list2; va_copy(list1, list2);" |
| HAS_VA_COPY) |
| SET(VA_LIST_IS_ARRAY_DEFINE 0) |
| IF(NOT VA_LIST_ISNOT_ARRAY_DEFINE) |
| SET(VA_LIST_IS_ARRAY_DEFINE 1) |
| ENDIF(NOT VA_LIST_ISNOT_ARRAY_DEFINE) |
| TRY_COMPILE_FROM_SOURCE("int x __attribute__((__unused__))" |
| ATTR_UNUSED_VAR) |
| SET(ATTR_UNUSED) |
| IF(ATTR_UNUSED_VAR) |
| SET(ATTR_UNUSED "__attribute__((__unused__))") |
| ENDIF(ATTR_UNUSED_VAR) |
| |
| SET(HAVE_LIBWWW_SSL) |
| SET(DIRECTORY_SEPARATOR "/") |
| |
| SET(HAVE_PTHREADS 0) |
| IF(CMAKE_BUILD_XMLRPC_WITH_THREADS) |
| FIND_PACKAGE(Threads) |
| IF(WIN32 OR CMAKE_USE_PTHREADS_INIT) |
| SET(HAVE_PTHREADS 1) |
| ENDIF(WIN32 OR CMAKE_USE_PTHREADS_INIT) |
| ENDIF(CMAKE_BUILD_XMLRPC_WITH_THREADS) |
| |
| INCLUDE_DIRECTORIES( |
| "${CMAKE_CURRENT_SOURCE_DIR}" |
| "${CMAKE_CURRENT_BINARY_DIR}" |
| ${CMAKE_EXPAT_INCLUDES} |
| ${CMAKE_CURL_INCLUDES} |
| ) |
| |
| CONFIGURE_FILE( |
| "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_config.h.in" |
| "${CMAKE_CURRENT_BINARY_DIR}/xmlrpc_config.h" |
| ) |
| CONFIGURE_FILE( |
| "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc_amconfig.h.in" |
| "${CMAKE_CURRENT_BINARY_DIR}/xmlrpc_amconfig.h" |
| ) |
| |
| SET(xmlrpc_SRCS |
| #XmlRpcCpp.cpp |
| xmlrpc_array.c |
| xmlrpc_authcookie.c |
| xmlrpc_base64.c |
| xmlrpc_client.c |
| xmlrpc_data.c |
| xmlrpc_expat.c |
| xmlrpc_parse.c |
| xmlrpc_registry.c |
| xmlrpc_serialize.c |
| xmlrpc_curl_transport.c |
| #xmlrpc_server_abyss.c |
| xmlrpc_struct.c |
| xmlrpc_strutil.c |
| xmlrpc_support.c |
| casprintf.c |
| ) |
| IF(HAVE_UNICODE_WCHAR) |
| SET(xmlrpc_SRCS |
| ${xmlrpc_SRCS} |
| xmlrpc_utf8.c |
| ) |
| ENDIF(HAVE_UNICODE_WCHAR) |
| IF(WIN32) |
| SET(xmlrpc_SRCS ${xmlrpc_SRCS} |
| win32_pthreads.c |
| ) |
| ENDIF(WIN32) |
| |
| ADD_LIBRARY(cmXMLRPC ${xmlrpc_SRCS}) |
| TARGET_LINK_LIBRARIES(cmXMLRPC ${CMAKE_EXPAT_LIBRARIES} ${CMAKE_CURL_LIBRARIES}) |
| IF(HAVE_PTHREADS) |
| TARGET_LINK_LIBRARIES(cmXMLRPC ${CMAKE_THREAD_LIBS_INIT}) |
| ENDIF(HAVE_PTHREADS) |
| |
| ADD_EXECUTABLE(xrtest synch_client.c) |
| TARGET_LINK_LIBRARIES(xrtest cmXMLRPC ${CMAKE_DL_LIBS}) |
| |
| # comment out test since it doesn pass and Andy doesn;t seem to be fixing it, |
| # for now assume that XMLRPC is not production quality code - Ken |
| # ADD_TEST(Test-XMLRPC ${EXECUTABLE_OUTPUT_PATH}/xrtest) |