CMakeLists.txt 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
  2. PROJECT(LIBCURL C)
  3. # Setup package meta-data
  4. SET(PACKAGE "curl")
  5. SET(VERSION "7.10.3")
  6. SET(PACKAGE_TARNAME " ")
  7. SET(PACKAGE_BUGREPORT " ")
  8. SET(PACKAGE_NAME " ")
  9. SET(PACKAGE_VERSION " ")
  10. SET(PACKAGE_STRING " ")
  11. SET(OPERATING_SYSTEM ${CMAKE_SYSTEM_NAME})
  12. # We need ansi c-flags, especially on HP
  13. SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
  14. SET(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS})
  15. # If we are on AIX, do the _ALL_SOURCE magic
  16. IF(${CMAKE_SYSTEM_NAME} MATCHES AIX)
  17. SET(_ALL_SOURCE 1)
  18. ENDIF(${CMAKE_SYSTEM_NAME} MATCHES AIX)
  19. # Include all the necessary files for macros
  20. INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
  21. INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
  22. INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
  23. INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
  24. INCLUDE (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
  25. INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
  26. SET(libCurl_SRCS
  27. file.c
  28. timeval.c
  29. base64.c
  30. hostip.c
  31. progress.c
  32. formdata.c
  33. cookie.c
  34. http.c
  35. sendf.c
  36. ftp.c
  37. url.c
  38. dict.c
  39. if2ip.c
  40. speedcheck.c
  41. getdate.c
  42. ldap.c
  43. ssluse.c
  44. version.c
  45. getenv.c
  46. escape.c
  47. mprintf.c
  48. telnet.c
  49. getpass.c
  50. netrc.c
  51. getinfo.c
  52. transfer.c
  53. strequal.c
  54. easy.c
  55. security.c
  56. krb4.c
  57. memdebug.c
  58. http_chunks.c
  59. strtok.c
  60. connect.c
  61. llist.c
  62. hash.c
  63. multi.c
  64. content_encoding.c
  65. )
  66. # On windows preload settings
  67. #IF(WIN32)
  68. # INCLUDE(${LIBCURL_SOURCE_DIR}/Platforms/WindowsCache.cmake)
  69. #ENDIF(WIN32)
  70. # This macro checks if the symbol exists in the library and if it
  71. # does, it appends library to the list.
  72. SET(CURL_LIBS "")
  73. MACRO(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
  74. CHECK_LIBRARY_EXISTS("${LIBRARY};${CURL_LIBS}" ${SYMBOL} ""
  75. ${VARIABLE})
  76. IF(${VARIABLE})
  77. SET(CURL_LIBS ${CURL_LIBS} ${LIBRARY})
  78. ENDIF(${VARIABLE})
  79. ENDMACRO(CHECK_LIBRARY_EXISTS_CONCAT)
  80. # Check for all needed libraries
  81. CHECK_LIBRARY_EXISTS_CONCAT("nsl" gethostname HAVE_LIBNSL)
  82. CHECK_LIBRARY_EXISTS_CONCAT("dl" dlopen HAVE_LIBDL)
  83. CHECK_LIBRARY_EXISTS_CONCAT("ucb" gethostname HAVE_LIBUCB)
  84. CHECK_LIBRARY_EXISTS_CONCAT("socket" connect HAVE_LIBSOCKET)
  85. CHECK_LIBRARY_EXISTS_CONCAT("ws2_32" printf HAVE_LIBWS2_32)
  86. CHECK_LIBRARY_EXISTS_CONCAT("winmm" printf HAVE_LIBWINMM)
  87. CHECK_LIBRARY_EXISTS_CONCAT("z" inflateEnd HAVE_LIBZ)
  88. CHECK_LIBRARY_EXISTS_CONCAT("crypto" CRYPTO_lock HAVE_LIBCRYPTO)
  89. CHECK_LIBRARY_EXISTS_CONCAT("ssl" SSL_connect HAVE_LIBSSL)
  90. # Check for symbol dlopen (same as HAVE_LIBDL)
  91. CHECK_LIBRARY_EXISTS("${CURL_LIBS}" dlopen "" HAVE_DLOPEN)
  92. # For other tests to use the same libraries
  93. SET(CMAKE_REQUIRED_LIBRARIES ${CURL_LIBS})
  94. # If we have features.h, then do the _BSD_SOURCE magic
  95. CHECK_INCLUDE_FILE("features.h" HAVE_FEATURES_H)
  96. IF(HAVE_FEATURES_H)
  97. SET_SOURCE_FILES_PROPERTIES(if2ip.c COMPILE_FLAGS -D_BSD_SOURCE)
  98. ENDIF(HAVE_FEATURES_H)
  99. # Check if header file exists and add it to the list.
  100. MACRO(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
  101. CHECK_INCLUDE_FILES("${CURL_INCLUDES};${FILE}" ${VARIABLE})
  102. IF(${VARIABLE})
  103. SET(CURL_INCLUDES ${CURL_INCLUDES} ${FILE})
  104. ENDIF(${VARIABLE})
  105. ENDMACRO(CHECK_INCLUDE_FILE_CONCAT)
  106. # Check for header files
  107. CHECK_INCLUDE_FILE_CONCAT("sys/types.h" HAVE_SYS_TYPES_H)
  108. CHECK_INCLUDE_FILE_CONCAT("inttypes.h" HAVE_INTTYPES_H)
  109. CHECK_INCLUDE_FILE_CONCAT("alloca.h" HAVE_ALLOCA_H)
  110. CHECK_INCLUDE_FILE_CONCAT("arpa/inet.h" HAVE_ARPA_INET_H)
  111. CHECK_INCLUDE_FILE_CONCAT("dlfcn.h" HAVE_DLFCN_H)
  112. CHECK_INCLUDE_FILE_CONCAT("fcntl.h" HAVE_FCNTL_H)
  113. CHECK_INCLUDE_FILE_CONCAT("malloc.h" HAVE_MALLOC_H)
  114. CHECK_INCLUDE_FILE_CONCAT("memory.h" HAVE_MEMORY_H)
  115. CHECK_INCLUDE_FILE_CONCAT("netdb.h" HAVE_NETDB_H)
  116. CHECK_INCLUDE_FILE_CONCAT("zlib.h" HAVE_ZLIB_H)
  117. CHECK_INCLUDE_FILE_CONCAT("sys/poll.h" HAVE_SYS_POLL_H)
  118. CHECK_INCLUDE_FILE_CONCAT("openssl/x509.h" HAVE_OPENSSL_X509_H)
  119. CHECK_INCLUDE_FILE_CONCAT("openssl/engine.h" HAVE_OPENSSL_ENGINE_H)
  120. CHECK_INCLUDE_FILE_CONCAT("openssl/rsa.h" HAVE_OPENSSL_RSA_H)
  121. CHECK_INCLUDE_FILE_CONCAT("openssl/crypto.h" HAVE_OPENSSL_CRYPTO_H)
  122. CHECK_INCLUDE_FILE_CONCAT("openssl/pem.h" HAVE_OPENSSL_PEM_H)
  123. CHECK_INCLUDE_FILE_CONCAT("openssl/ssl.h" HAVE_OPENSSL_SSL_H)
  124. CHECK_INCLUDE_FILE_CONCAT("openssl/err.h" HAVE_OPENSSL_ERR_H)
  125. CHECK_INCLUDE_FILE_CONCAT("sys/socket.h" HAVE_SYS_SOCKET_H)
  126. CHECK_INCLUDE_FILE_CONCAT("netinet/in.h" HAVE_NETINET_IN_H)
  127. CHECK_INCLUDE_FILE_CONCAT("net/if.h" HAVE_NET_IF_H)
  128. CHECK_INCLUDE_FILE_CONCAT("netinet/if_ether.h"
  129. HAVE_NETINET_IF_ETHER_H)
  130. CHECK_INCLUDE_FILE_CONCAT("sys/select.h" HAVE_SYS_SELECT_H)
  131. CHECK_INCLUDE_FILE_CONCAT("utime.h" HAVE_UTIME_H)
  132. CHECK_INCLUDE_FILE_CONCAT("netinet/in.h" HAVE_NETINET_IN_H)
  133. CHECK_INCLUDE_FILE_CONCAT("pwd.h" HAVE_PWD_H)
  134. CHECK_INCLUDE_FILE_CONCAT("sgtty.h" HAVE_SGTTY_H)
  135. CHECK_INCLUDE_FILE_CONCAT("stdint.h" HAVE_STDINT_H)
  136. CHECK_INCLUDE_FILE_CONCAT("stdlib.h" HAVE_STDLIB_H)
  137. CHECK_INCLUDE_FILE_CONCAT("string.h" HAVE_STRING_H)
  138. CHECK_INCLUDE_FILE_CONCAT("strings.h" HAVE_STRINGS_H)
  139. CHECK_INCLUDE_FILE_CONCAT("sys/param.h" HAVE_SYS_PARAM_H)
  140. CHECK_INCLUDE_FILE_CONCAT("sys/stat.h" HAVE_SYS_STAT_H)
  141. CHECK_INCLUDE_FILE_CONCAT("sys/time.h" HAVE_SYS_TIME_H)
  142. CHECK_INCLUDE_FILE_CONCAT("termios.h" HAVE_TERMIOS_H)
  143. CHECK_INCLUDE_FILE_CONCAT("termio.h" HAVE_TERMIO_H)
  144. CHECK_INCLUDE_FILE_CONCAT("io.h" HAVE_IO_H)
  145. CHECK_INCLUDE_FILE_CONCAT("time.h" HAVE_TIME_H)
  146. CHECK_INCLUDE_FILE_CONCAT("unistd.h" HAVE_UNISTD_H)
  147. CHECK_INCLUDE_FILE_CONCAT("sys/utime.h" HAVE_SYS_UTIME_H)
  148. CHECK_INCLUDE_FILE_CONCAT("winsock.h" HAVE_WINSOCK_H)
  149. CHECK_INCLUDE_FILE_CONCAT("sockio.h" HAVE_SOCKIO_H)
  150. CHECK_INCLUDE_FILE_CONCAT("sys/sockio.h" HAVE_SYS_SOCKIO_H)
  151. CHECK_INCLUDE_FILE_CONCAT("x509.h" HAVE_X509_H)
  152. CHECK_INCLUDE_FILE_CONCAT("setjmp.h" HAVE_SETJMP_H)
  153. CHECK_INCLUDE_FILE_CONCAT("signal.h" HAVE_SIGNAL_H)
  154. CHECK_TYPE_SIZE(ssize_t SIZEOF_SSIZE_T)
  155. CHECK_TYPE_SIZE("long double" SIZEOF_LONG_DOUBLE)
  156. IF(NOT HAVE_SIZEOF_SSIZE_T)
  157. SET(ssize_t int)
  158. ENDIF(NOT HAVE_SIZEOF_SSIZE_T)
  159. FIND_FILE(RANDOM_FILE urandom /dev)
  160. # Check for some functions that are used
  161. CHECK_SYMBOL_EXISTS(socket "${CURL_INCLUDES}" HAVE_SOCKET)
  162. CHECK_SYMBOL_EXISTS(poll "${CURL_INCLUDES}" HAVE_POLL)
  163. CHECK_SYMBOL_EXISTS(select "${CURL_INCLUDES}" HAVE_SELECT)
  164. CHECK_SYMBOL_EXISTS(strdup "${CURL_INCLUDES}" HAVE_STRDUP)
  165. CHECK_SYMBOL_EXISTS(strstr "${CURL_INCLUDES}" HAVE_STRSTR)
  166. CHECK_SYMBOL_EXISTS(strtok_r "${CURL_INCLUDES}" HAVE_STRTOK_R)
  167. CHECK_SYMBOL_EXISTS(strftime "${CURL_INCLUDES}" HAVE_STRFTIME)
  168. CHECK_SYMBOL_EXISTS(uname "${CURL_INCLUDES}" HAVE_UNAME)
  169. CHECK_SYMBOL_EXISTS(strcasecmp "${CURL_INCLUDES}" HAVE_STRCASECMP)
  170. CHECK_SYMBOL_EXISTS(stricmp "${CURL_INCLUDES}" HAVE_STRICMP)
  171. CHECK_SYMBOL_EXISTS(strcmpi "${CURL_INCLUDES}" HAVE_STRCMPI)
  172. CHECK_SYMBOL_EXISTS(gethostbyaddr "${CURL_INCLUDES}" HAVE_GETHOSTBYADDR)
  173. CHECK_SYMBOL_EXISTS(gettimeofday "${CURL_INCLUDES}" HAVE_GETTIMEOFDAY)
  174. CHECK_SYMBOL_EXISTS(inet_addr "${CURL_INCLUDES}" HAVE_INET_ADDR)
  175. CHECK_SYMBOL_EXISTS(inet_ntoa "${CURL_INCLUDES}" HAVE_INET_NTOA)
  176. CHECK_SYMBOL_EXISTS(inet_ntoa_r "${CURL_INCLUDES}" HAVE_INET_NTOA_R)
  177. CHECK_SYMBOL_EXISTS(tcsetattr "${CURL_INCLUDES}" HAVE_TCSETATTR)
  178. CHECK_SYMBOL_EXISTS(tcgetattr "${CURL_INCLUDES}" HAVE_TCGETATTR)
  179. CHECK_SYMBOL_EXISTS(perror "${CURL_INCLUDES}" HAVE_PERROR)
  180. CHECK_SYMBOL_EXISTS(closesocket "${CURL_INCLUDES}" HAVE_CLOSESOCKET)
  181. CHECK_SYMBOL_EXISTS(setvbuf "${CURL_INCLUDES}" HAVE_SETVBUF)
  182. CHECK_SYMBOL_EXISTS(sigsetjmp "${CURL_INCLUDES}" HAVE_SIGSETJMP)
  183. CHECK_SYMBOL_EXISTS(getpass_r "${CURL_INCLUDES}" HAVE_GETPASS_R)
  184. CHECK_SYMBOL_EXISTS(strlcat "${CURL_INCLUDES}" HAVE_STRLCAT)
  185. CHECK_SYMBOL_EXISTS(getpwuid "${CURL_INCLUDES}" HAVE_GETPWUID)
  186. CHECK_SYMBOL_EXISTS(geteuid "${CURL_INCLUDES}" HAVE_GETEUID)
  187. CHECK_SYMBOL_EXISTS(utime "${CURL_INCLUDES}" HAVE_UTIME)
  188. CHECK_SYMBOL_EXISTS(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS)
  189. CHECK_SYMBOL_EXISTS(RAND_screen "${CURL_INCLUDES}" HAVE_RAND_SCREEN)
  190. CHECK_SYMBOL_EXISTS(RAND_egd "${CURL_INCLUDES}" HAVE_RAND_EGD)
  191. CHECK_SYMBOL_EXISTS(gmtime_r "${CURL_INCLUDES}" HAVE_GMTIME_R)
  192. CHECK_SYMBOL_EXISTS(localtime_r "${CURL_INCLUDES}" HAVE_LOCALTIME_R)
  193. CHECK_SYMBOL_EXISTS(gethostbyname_r "${CURL_INCLUDES};netdb.h" HAVE_GETHOSTBYNAME_R)
  194. CHECK_SYMBOL_EXISTS(gethostbyaddr_r "${CURL_INCLUDES};netdb.h" HAVE_GETHOSTBYADDR_R)
  195. CHECK_SYMBOL_EXISTS(signal "${CURL_INCLUDES}" HAVE_SIGNAL_FUNC)
  196. CHECK_SYMBOL_EXISTS(SIGALRM "${CURL_INCLUDES}" HAVE_SIGNAL_MACRO)
  197. IF(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO)
  198. SET(HAVE_SIGNAL 1)
  199. ENDIF(HAVE_SIGNAL_FUNC AND HAVE_SIGNAL_MACRO)
  200. # sigaction and sigsetjmp are special. Use special mechanism for
  201. # detecting those, but only if previous attempt failed.
  202. IF(HAVE_SIGNAL_H)
  203. CHECK_SYMBOL_EXISTS(sigaction "signal.h" HAVE_SIGACTION)
  204. ENDIF(HAVE_SIGNAL_H)
  205. IF(NOT HAVE_SIGSETJMP)
  206. IF(HAVE_SETJMP_H)
  207. CHECK_SYMBOL_EXISTS(sigsetjmp "setjmp.h" HAVE_MACRO_SIGSETJMP)
  208. IF(HAVE_MACRO_SIGSETJMP)
  209. SET(HAVE_SIGSETJMP 1)
  210. ENDIF(HAVE_MACRO_SIGSETJMP)
  211. ENDIF(HAVE_SETJMP_H)
  212. ENDIF(NOT HAVE_SIGSETJMP)
  213. # For other curl specific tests, use this macro.
  214. MACRO(CURL_INTERNAL_TEST CURL_TEST)
  215. IF("${CURL_TEST}" MATCHES "^${CURL_TEST}$")
  216. SET(MACRO_CHECK_FUNCTION_DEFINITIONS
  217. "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}")
  218. IF(CMAKE_REQUIRED_LIBRARIES)
  219. SET(CURL_TEST_ADD_LIBRARIES
  220. "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
  221. ENDIF(CMAKE_REQUIRED_LIBRARIES)
  222. MESSAGE(STATUS "Performing Curl Test ${CURL_TEST}")
  223. TRY_COMPILE(${CURL_TEST}
  224. ${CMAKE_BINARY_DIR}
  225. ${LIBCURL_SOURCE_DIR}/CMake/CurlTests.c
  226. CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
  227. "${CURL_TEST_ADD_LIBRARIES}"
  228. OUTPUT_VARIABLE OUTPUT)
  229. IF(${CURL_TEST})
  230. SET(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}")
  231. MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Success")
  232. ELSE(${CURL_TEST})
  233. MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Failed")
  234. SET(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}")
  235. WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
  236. "Performing Curl Test ${CURL_TEST} failed with the following output:\n"
  237. "${OUTPUT}\n" APPEND)
  238. ENDIF(${CURL_TEST})
  239. ENDIF("${CURL_TEST}" MATCHES "^${CURL_TEST}$")
  240. ENDMACRO(CURL_INTERNAL_TEST)
  241. # Do curl specific tests
  242. FOREACH(CURL_TEST
  243. TIME_WITH_SYS_TIME
  244. HAVE_O_NONBLOCK
  245. HAVE_GETHOSTBYADDR_R_5
  246. HAVE_GETHOSTBYADDR_R_7
  247. HAVE_GETHOSTBYADDR_R_8
  248. HAVE_GETHOSTBYADDR_R_5_REENTRANT
  249. HAVE_GETHOSTBYADDR_R_7_REENTRANT
  250. HAVE_GETHOSTBYADDR_R_8_REENTRANT
  251. HAVE_GETHOSTBYNAME_R_3
  252. HAVE_GETHOSTBYNAME_R_5
  253. HAVE_GETHOSTBYNAME_R_6
  254. HAVE_GETHOSTBYNAME_R_3_REENTRANT
  255. HAVE_GETHOSTBYNAME_R_5_REENTRANT
  256. HAVE_GETHOSTBYNAME_R_6_REENTRANT
  257. HAVE_SOCKLEN_T
  258. HAVE_IN_ADDR_T
  259. STDC_HEADERS
  260. RETSIGTYPE_TEST
  261. HAVE_INET_NTOA_R_DECL
  262. HAVE_INET_NTOA_R_DECL_REENTRANT
  263. HAVE_GETADDRINFO
  264. )
  265. CURL_INTERNAL_TEST(${CURL_TEST})
  266. ENDFOREACH(CURL_TEST)
  267. # Check for reentrant
  268. FOREACH(CURL_TEST
  269. HAVE_GETHOSTBYADDR_R_5
  270. HAVE_GETHOSTBYADDR_R_7
  271. HAVE_GETHOSTBYADDR_R_8
  272. HAVE_GETHOSTBYNAME_R_3
  273. HAVE_GETHOSTBYNAME_R_5
  274. HAVE_GETHOSTBYNAME_R_6
  275. HAVE_INET_NTOA_R_DECL_REENTRANT)
  276. IF(NOT ${CURL_TEST})
  277. IF(${CURL_TEST}_REENTRANT)
  278. SET(NEED_REENTRANT 1)
  279. ENDIF(${CURL_TEST}_REENTRANT)
  280. ENDIF(NOT ${CURL_TEST})
  281. ENDFOREACH(CURL_TEST)
  282. IF(NEED_REENTRANT)
  283. FOREACH(CURL_TEST
  284. HAVE_GETHOSTBYADDR_R_5
  285. HAVE_GETHOSTBYADDR_R_7
  286. HAVE_GETHOSTBYADDR_R_8
  287. HAVE_GETHOSTBYNAME_R_3
  288. HAVE_GETHOSTBYNAME_R_5
  289. HAVE_GETHOSTBYNAME_R_6)
  290. SET(${CURL_TEST} 0)
  291. IF(${CURL_TEST}_REENTRANT)
  292. SET(${CURL_TEST} 1)
  293. ENDIF(${CURL_TEST}_REENTRANT)
  294. ENDFOREACH(CURL_TEST)
  295. ENDIF(NEED_REENTRANT)
  296. IF(HAVE_INET_NTOA_R_DECL_REENTRANT)
  297. SET(HAVE_INET_NTOA_R_DECL 1)
  298. SET(NEED_REENTRANT 1)
  299. ENDIF(HAVE_INET_NTOA_R_DECL_REENTRANT)
  300. # Some other minor tests
  301. IF(NOT HAVE_SOCKLEN_T)
  302. SET(socklen_t "int")
  303. ENDIF(NOT HAVE_SOCKLEN_T)
  304. IF(NOT HAVE_IN_ADDR_T)
  305. SET(in_addr_t "unsigned long")
  306. ENDIF(NOT HAVE_IN_ADDR_T)
  307. # Fix libz / zlib.h
  308. IF(NOT HAVE_LIBZ)
  309. SET(HAVE_ZLIB_H 0)
  310. ENDIF(NOT HAVE_LIBZ)
  311. IF(NOT HAVE_ZLIB_H)
  312. SET(HAVE_LIBZ 0)
  313. ENDIF(NOT HAVE_ZLIB_H)
  314. # Check for nonblocking
  315. SET(HAVE_SOME_NONBLOCK 0)
  316. FOREACH(CURL_TEST
  317. HAVE_FIONBIO
  318. HAVE_IOCTLSOCKET
  319. HAVE_IOCTLSOCKET_CASE
  320. HAVE_O_NONBLOCK)
  321. IF(${CURL_TEST})
  322. SET(HAVE_SOME_NONBLOCK 1)
  323. ENDIF(${CURL_TEST})
  324. ENDFOREACH(CURL_TEST)
  325. IF(NOT HAVE_SOME_NONBLOCK)
  326. SET(HAVE_DISABLED_NONBLOCKING 1)
  327. ENDIF(NOT HAVE_SOME_NONBLOCK)
  328. IF(RETSIGTYPE_TEST)
  329. SET(RETSIGTYPE void)
  330. ELSE(RETSIGTYPE_TEST)
  331. SET(RETSIGTYPE int)
  332. ENDIF(RETSIGTYPE_TEST)
  333. # The rest of the build
  334. INCLUDE_DIRECTORIES(${LIBCURL_SOURCE_DIR})
  335. INCLUDE_DIRECTORIES(${LIBCURL_BINARY_DIR})
  336. ADD_DEFINITIONS(-DHAVE_CONFIG_H)
  337. CONFIGURE_FILE(${LIBCURL_SOURCE_DIR}/config.h.in
  338. ${LIBCURL_BINARY_DIR}/config.h)
  339. ADD_LIBRARY(Curl STATIC ${libCurl_SRCS})
  340. TARGET_LINK_LIBRARIES(Curl ${CURL_LIBS})
  341. OPTION(CURL_TESTING "Do libCurl testing" ON)
  342. IF(CURL_TESTING)
  343. SUBDIRS(Testing)
  344. ENDIF(CURL_TESTING)
  345. ADD_EXECUTABLE(LIBCURL Testing/curltest.c)
  346. TARGET_LINK_LIBRARIES(LIBCURL Curl)